home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Shareware Overload Trio 2
/
Shareware Overload Trio Volume 2 (Chestnut CD-ROM).ISO
/
dir39
/
4dostip4.zip
/
4DOS4.MSG
next >
Wrap
Text File
|
1992-08-01
|
389KB
|
11,050 lines
------------------------------------------------------------------------
Echo Flag : Permanent: N Export: N Personal Read: N
BBS: ESCMAIL Conference: 4dos(ECHO) Imported: 4/29/1992
To: ALL Num: 67 Date: 4/27/1992
From: DENIS LEPINE Re: Time: 3:27 pm
Subj: Music for your ears Prvt: N Read: N
LOADBTM ON
beep 185 8 349 8 349 4 330 4 294 3 262 3 247 3 233 4 233 2 233 3
beep 1 1 233 2 233 16 196 8 392 8 392 4
beep 349 4 330 3 294 3 262 3 247 4 247 2 247 3
beep 1 1 247 16 247 4 233 4 220 4 220 4 220 4 277 4 294 4 330 3
beep 370 3 392 3 440 8 466 8 466 8 466 8 233 8 233 4 262 4
beep 294 4 311 4 349 3 392 3 415 3 466 8 494 8 494 8 494 8
beep 196 8 349 8 349 4 330 4 296 3 262 3 247 3 233 4 233 2 233 3
beep 1 1 233 16 233 4 208 4 196 8 392 8
beep 392 4 349 4 330 3 294 3 262 3 247 4 247 2 247 3
beep 1 1 247 16 247 4 233 4 220 4 220 4 220 4 247 4
beep 262 4 294 4 330 3 349 3 330 3 392 8 392 4 392 3
beep 1 1 392 4 466 4 466 4 466 4 440 4 392 8
beep 262 16 294 8 262 32
rem 100 rem Star-Trek Theme (TOS)
rem 110 PLAY "T200MLO2L2GO3FL4FEL6DCO2BL4B-L8B-L32B-B-B-P32B-L1B-"
rem 120 PLAY "L2GO3GL4GFL6EDCO2L4BL8BL32BBBP32L1BL4B7"
rem 130 PLAY "L4B-AAABO3C#DL6EF#GL2AB-B-B-O2B-L4B-O3CDE-L6FGA-L2B-BBB"
rem 140 PLAY "O2GO3FL4FEL6DCO2BL4B-L8B-L32B-B-B-P32"
rem 150 PLAY "L1B-L4B-A-L2GO3GL4GFL6EDCO2L4BL8BL32BBBP32L1BL4B"
rem 160 PLAY "O2B-AAABO3CDL6EFEL2GL4GL32GGGP32L4GB-B-B-AL2GL1CL2DL1CC"
Denis Lépine, 240/20.3
... Come with me, TAG along.
--- QMail v1.00
* Origin: Le point a Denis (1:240/20.3)
------------------------------------------------------------------------
Echo Flag : Permanent: N Export: N Personal Read: N
BBS: ESCMAIL Conference: 4dos(ECHO) Imported: 5/02/1992
To: ALL Num: 93 Date: 4/30/1992
From: TONY DUNLAP Re: Time: 12:23 pm
Subj: 4view.btm Prvt: N Read: N
A user reported a problem of not being able to view a file with no extension
inside a zip. this was fixed by replacing this:
elseiff %filew% EQ 2 then
set filen=%@select[$$4view.dat,1,0,20,80,Pick File to View]%
set filen=%@word[0,%filen%]%.%@word[1,%filen%]%
endiff
with this:
elseiff %filew% EQ 2 then
set filen=%@select[$$4view.dat,1,0,20,80,Pick File to View]%
iff "%@word[1,%@substr[%filen%,0,13]]" EQ "" then
set filen=%@word[0,%filen%]%.
else
set filen=%@word[0,%filen%]%.%@word[1,%filen%]%
endiff
endiff
The original posting was about a week ago. If you are interested in this
program, the latest version will always be available for F'req at
1:2220/30 as 4VIEW.ARJ or
Available via FREQ or first time callers from
The Outer Limits I (1:2220/10) at 1-614-772-5520
(USR Dual Standard) or The Outer Limits II
(1:2220/15) at 1-614-772-5583 (USR 14.4 HST).
Later
---
* Origin: ODOT District 9 (1:2220/30)
To: RALPH SIMS Message #: 106
From: STEN DRESCHER Submitted: 30 Apr 92 18:58:00
Subject: Re: DOS 5: boot from a RA Status: Public
Received: No Group: 4dos(ECHO) (15)
SD> You can always use the @ parameter to explicitly name the initialization
RS> Won't work in quite that manner. The INI file is read from config.sys
RS> at boot-up ONLY ONCE. It won't exist on the ramdrive until the file
RS> is copied over. Each time 4DOS needs to read the INI file ikt goes
RS> to where it was told in the config.sys SHELL statement.
Check again. Quoting from the 4DOS Reference Manual, page 118:
If you start a secondary shell from a task switching program
like Windows, DESQView, or Back & Forth, you can specify an
alternate location and name for _4DOS.INI_ by passing the
"@d:\path\inifile: option to 4DOS as a command line parameter
(see page 109). In this case, the configuration settings in the
alternate _4DOS.INI_ files will supersede any settings inherited
from the previous shell.
-Sten
--- EZPoint V2.2
* Origin: Ten Forward.NUL, San Antonio, TX (1:387/255.104)
=-=-=-=-=
------------------------------------------------------------------------
Echo Flag : Permanent: N Export: N Personal Read: N
BBS: ESCMAIL Conference: 4dos(ECHO) Imported: 5/05/1992
To: STEN DRESCHER Num: 123 Date: 5/02/1992
From: NICHOLAS LEON Re: Time: 1:51 pm
Subj: Eval Variable Prvt: N Read: N
Sten!
On 29 Apr 92, Sten Drescher was hearding whispering to Scott Wunsch in the
corner...
MH>> Calculating the day of the week from any arbitrary date using the MH>
MH>> Zeller convergence. MH>
SW>> . . .
SW>>
SW>> Isn't using %_DOW a little easier than that?
SW>>
SD> Only if you want the DOW for today.
How about using this math formula. This will work for any day not before the
beginning of the Julian Calendar. It returns a value from 0 to 6: the day of
week:
( ( ( 3*(y) - (7*((y)+((m)+9)/12))/4 + (23*(m))/9 + (d) + 2
+ 15 - (((y)-((m)<3))/100+1) * 3 / 4 ) % 7 ) )
Needless to say, y is year, m is month and d is day.
I suppose you'd have to put it like this in 4DOS
set dow=%@eval[( ( ( 3*(%y) - (7*((%y)+((%m)+9)/12))/4 + (23*(%m))/9 + (%d) +
2+ 15 - (((%y)-((%m)<3))/100+1) * 3 / 4 ) % 7 ) )]
Complex but it works! ;-)
Nicholas!
Sysop of The File-XChange! (1:3648/5@FidoNet, 72:919/10@RANet)
... Now playing RA 1.11, FD 2.02, DESQview/X, and QEMM 6.03.
... Coming soon OS/2 2.0 & NuBoard BBS!
--- GoldED 2.40
* Origin: The File-XChange! (919) 672-3388! 1GIG Online! (1:3648/5)
------------------------------------------------------------------------
Echo Flag : Permanent: N Export: N Personal Read: N
BBS: ESCMAIL Conference: 4dos(ECHO) Imported: 5/05/1992
To: ALL Num: 149 Date: 5/03/1992
From: WILLIAM HUGHES Re: Time: 7:14 pm
Subj: Rounding Numbers Prvt: N Read: N
Something I threw together to clean up some calculations...
ROUND.BTM
====><==== CUT HERE ====><====
if "%1"=="" .OR. "%2"=="" goto OOPS
set _RND_=0
set VALUE_IN=%2
set INTEGER_IN=%@int[%VALUE_IN]
set DECIMAL_IN=%@eval[%VALUE_IN-%@int[%VALUE_IN]]
if %1 LT 1 goto FRACTION
if %1 GT 1 goto INTEGERS
if %1 EQ 1 goto UNITS
goto OOPS
:FRACTION
set ZEROS=%@len[%1]
set CORRECTION=%@substr[10000000000,0,%ZEROS]
set SHIFT=%@eval[%DECIMAL_IN*%CORRECTION]
set CHECK=%@eval[%SHIFT-%@int[%SHIFT]]
iff %@eval[%CHECK-0.5] LT 0 then
set DECIMAL=%@eval[%@int[%SHIFT]/%CORRECTION]
else
set DECIMAL=%@eval[%@eval[%@int[%SHIFT]+1]/%CORRECTION]
endiff
set _RND_=%@eval[%INTEGER_IN+%DECIMAL]
goto ENDIT
:UNITS
iff %@eval[%DECIMAL_IN-.5] LT 0 then
set _RND_=%INTEGER_IN
else
set _RND_=%@eval[%INTEGER_IN+1]
endiff
goto ENDIT
:INTEGERS
set CORRECTION=%1
set SHIFT=%@eval[%INTEGER_IN/%CORRECTION]
set CHECK=%@eval[%SHIFT-%@int[%SHIFT]]
iff %@eval[%CHECK-0.5] LT 0 then
set _RND_=%@eval[%@int[%SHIFT]*%CORRECTION]
else
set _RND_=%@eval[%@eval[%@int[%SHIFT]+1]*%CORRECTION]
endiff
goto ENDIT
:OOPS
echo Syntax - ROUND [units] [number to be rounded]
echo.
echo where [units] is .01 = hundredths
echo .1 = tenths
echo 1 = units
echo 10 = tens
echo.
echo and so forth. The program is open-ended (within the limits of 4DOS).
echo.
echo ROUND returns the rounded value in the environment variable _RND_.
:ENDIT
set VALUE_IN=
set INTEGER_IN=
set DECIMAL_IN=
set SHIFT=
set CHECK=
set DECIMAL=
set CORRECTION=
====><==== CT HERE ====><====
* SLMR 2.1a *
--- MsgToss 2.0b (r)
* Origin: Nul 512-615-NUL1 HST/V32b,615-NUL2, NUL3, 1.2Gig (1:387/255)
------------------------------------------------------------------------
Echo Flag : Permanent: N Export: N Personal Read: N
BBS: ESCMAIL Conference: 4dos(ECHO) Imported: 5/09/1992
To: JOHN CAMPBELL Num: 164 Date: 5/02/1992
From: MICHAEL EICHHARDT Re: Time: 11:43 am
Subj: 4DOS/NDOS Prvt: N Read: N
Hallo John!
>> Uh, Joe, what kind of commands would one have in this
>> 4START.BAT file? I don't have one either, and I'm having a shell
>> of a time (sorry) with several programs. I dinked around and
>> finally was able to access dosshell, but not any more. Would
>> appreciate your suggestions. jkc
I'm using 4START.BAT to reload the ANSI driver under DesqView:
: ------------------------------------------------------------------------
: 4START.BTM - wird von jeder Shell beim Start neu geladen.
:
: 10.11.1991 (c) Michael Eichhardt
: ------------------------------------------------------------------------
: unter DeskView muß der ANSI-Treiber in einer Shell neu geladen werden
: damit er in einer Shelle nicht mehrfach geladen wird, wird _DVANSI gesetzt
IFF %_dv==1 .AND. %_ansi==1 .AND. "%_DVANSI"=="" .AND. %_WIN==0 THEN
C:\UTIL\DESQVIEW\DVANSI
SET _DVANSI=1
ENDIFF
Ciao |\/|
| |ike
--- Golded 2.32.B0212+
* Origin: Point 13 - HGS Cologne [14400-HST/V32B] (FidoNet 2:241/5002.13)
------------------------------------------------------------------------
Echo Flag : Permanent: N Export: N Personal Read: N
BBS: ESCMAIL Conference: 4dos(ECHO) Imported: 5/09/1992
To: MURRAY WELLS Num: 225 Date: 5/06/1992
From: YVES LAVOIE Re: Time: 1:13 am
Subj: 4START.BTM and 4DOS.O Prvt: N Read: N
In a message to Matt Curtis, Murray Wells (3:640/556.11) writes:MW
> So these files are applicable for multi-tasking software such
> as Desqview? I still don't see the advantage... Wouldn't 4START be
> executed on powerup or reboot of the computer? WHy would running it
> *again* be advantageous...?
Here's an example: This 4Start.Btm would load the Ansi driver in the 1st
shell of a window when in Dv. ( It MUST be done in each window, DV and
ANSI.SYS in the config don't work together )
@*Iff "%_Dv" = "1" Then
@*If "%DvAnsi" == "" *Set DvAnsi=0
@*If Not %DvAnsi% GT 0 O:\Utils\Ansi
@*Set DvAnsi=%@Eval[%DvAnsi+1]
Endiff
And here's the 4Exit.Btm:
@*Iff "%_Dv" = "1" Then
@*Set DvAnsi=%@Eval[%DvAnsi-1]
@*If %DvAnsi LE 0 O:\Utils\Ansi /U
Endiff
Yves
--- Yammed 0.40.00a - Yet Another Marvelous Message EDitor
* Origin: TracyOpus, the only Opus in town <Hst/Ds> (1:167/124.0)
------------------------------------------------------------------------
Echo Flag : Permanent: N Export: N Personal Read: N
BBS: ESCMAIL Conference: 4dos(ECHO) Imported: 5/09/1992
To: ALL Num: 196 Date: 5/05/1992
From: NICHOLAS LEON Re: Time: 1:12 pm
Subj: Change Dir Prvt: N Read: N
All:
I thought I might post two files that i use. One is called "ND" and it will
change the directory when given only a partial name. If more than one dir is
found, entering ND will cycle thru them.... for example, if you have three
dirs called
C:\DOS50
C:\OS2
C:\DOS330
And you issue "ND OS" it will go to the first "C:\DOS330", then if you enter
ND by itself it will go to "C:\DOS50" etc...
There are two files... ND.BTM, the changer and NDR.BTM to rescan your dirs.
ND.BTM
------
@echo off
if "%1"=="" goto NOPARAM
c:\dos\find "%@upper[%1]" < c:\batches\nd.dir > c:\batches\nd.dr1
type c:\batches\nd.dr1|input %%nd
if "%nd"=="" goto NOTFOUND
set ndn=1
cdd %nd
unset nd
goto END
:NOPARAM
set nd=%@line[c:\batches\nd.dr1,%ndn]
if "%nd"=="" goto NOMORE
cdd %nd
unset nd
set ndn=%@eval[%ndn+1]
goto END
:NOMORE
set ndn=0
echo ND: no more directories! Issuing ND again will recycle directories.
goto END
:NOTFOUND
echo ND: directory "%@upper[%1]" was NOT found!
goto END
:END
NDR.BTM
-------
@echo off
text
endtext
pushd
cdd c:\
del c:\batches\nd.dir >NUL
for %a in (C D E) gosub SCAN
popd
quit
:SCAN
text
endtext
echo Scanning Drive %a
*cdd %a:\
global /iq (echo %@upper[%_cwd] >>!c:\batches\nd.dir^echos ■)
return
--------- end
You have to change the drive letters in NDR.BTM to reflect your own setup. I
also overload the MD and MKDIR to automatically add new dirs to
C:\BATCHES\ND.DIR instead of having to rescan the whole drive. Make sure you
change the directories to reflect YOUR setup.
Nicholas!
Sysop of The File-XChange!
... Coming soon OS/2 2.0 & NuBoard BBS!
--- GoldED 2.40
* Origin: The File-XChange! (919) 672-3388! 1GIG Online! (1:3648/5)
------------------------------------------------------------------------
Echo Flag : Permanent: N Export: N Personal Read: N
BBS: ESCMAIL Conference: 4dos(ECHO) Imported: 5/09/1992
To: RON FABRE Num: 163 Date: 5/02/1992
From: SIMON JOSEFSSON Re: Time: 2:18 pm
Subj: Deleting Files Prvt: N Read: N
* In a msg on 21 Apr (15:02), Ron Fabre of 3:635/526 writes:
RF> >>> emptied. For example, KILL C:\FOO (or KILL C:\FOO\) would delete
RF> I'm sure some enterprising 4DOS BTM programmer could create one, but
RF> I've found that DRDEL.COM works perfectly. It even searches for and
RF> deletes hidden/readonly/system files within the directory structure.
If someone would be interested, here's my DDIR (DeleteDIR):
_ _ _ O / _ _ C_U_T_ H_E_R_E_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
O \
@echo off
if %1! eq ! echo Usage: DDIR [d:]path
if %1! eq ! quit
if not exist %1\nul echo Invalid path "%@FULL[%1]"
if not exist %1\nul echo 0 directory(s) zapped
if not exist %1\nul quit
echo:
echo The following directories, and all the files in them, will be removed:
echo:
echo %@UPPER[%@FULL[%1]]
del e:\temp.$$$ /q >& nul
cd %1
dir /a:d /s /b /f >> e:\temp.$$$
cd..
set linenum=%@LINES[e:\temp.$$$]
set counter=1
if %linenum EQ -1 goto stop_it
:again
if %linenum GE %counter echo %@UPPER[%@LINE[e:\temp.$$$,%counter]]
if %linenum EQ %counter goto stop_it
set counter=%@EVAL[%counter+1]
goto again
:stop_it
echo:
inkey /K"YyNn" Are you sure you want to proceed? (Y/N) %%yesno
iff %@UPPER[%yesno]! eq N! then
echo:
echo *** DDIR Aborted ***
quit
endiff
set counter=1
echo:
if %linenum EQ -1 goto 2stop_it
:2again
if %linenum GE %counter echo Removing and deleting files in
********continued******** %@UPPER[%@LINE[e:\temp.$$$,%counter]]
if exist %@LINE[e:\temp.$$$,%counter]\*.* del %@LINE[e:\temp.$$$,%counter] /q
********continued******** /y /x /h
if not exist %@UPPER[%@LINE[e:\temp.$$$,%counter]]\*.* rd
********continued******** %@LINE[e:\temp.$$$,%counter] >& nul
if %linenum EQ %counter goto 2stop_it
set counter=%@EVAL[%counter+1]
goto 2again
:2stop_it
echo Removing and deleting files in %@UPPER[%@FULL[%1]]
del %@FULL[%1] /q /y /x /h
if not exist %@UPPER[%@FULL[%1]] rd %@UPPER[%@FULL[%1]] >& nul
del e:\temp.$$$ /q
_ _ _ O / _ _ C_U_T_ H_E_R_E_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
O \
Note: append the lines with '*********continued*********' to the previus
line.. E:\ Must be a valid drive, preferable a ram-disk..
I noticed a bug (undocumented feature) when i wrote this, the command
'DIR /a:d /f /s /c /b' returns paths in lowercase.. IMHO it shouldn't.
Enjoy!
// JaS
--- msgedsq 2.0.5
* Origin: Simon Josefsson - Sweden, Stockholm. (2:201/111.34)
------------------------------------------------------------------------
Echo Flag : Permanent: N Export: N Personal Read: N
BBS: ESCMAIL Conference: 4dos(ECHO) Imported: 5/09/1992
To: SIMON JOSEFSSON Num: 189 Date: 5/05/1992
From: BILL HARTING Re: Time: 3:06 pm
Subj: Deleting Files Prvt: N Read: N
02 May 92, Simon Josefsson writes to Ron Fabre:
RF>> I'm sure some enterprising 4DOS BTM programmer could
RF>> create one, but I've found that DRDEL.COM works
RF>> perfectly. It even searches for and deletes
RF>> hidden/readonly/system files within the directory
RF>> structure.
SJ > If someone would be interested, here's my DDIR (DeleteDIR):
Simon, you have some excellent code in there. I found a way to
tighten it up, though. Thought you might like to see the results...
_ _ _ O / _ _ C_U_T_ H_E_R_E_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
O \
@echo off
if %1! eq ! echo Usage : DELDIR [d:]path
if %1! eq ! quit
if not exist %1\nul echo Invalid path "%@FULL[%1]"
if not exist %1\nul echo 0 directory(s) zapped
if not exist %1\nul quit
echo:
echo The following directories, and all the files in them, will be removed:
echo:
echo %@UPPER[%@FULL[%1]]
del %RAMD%\temp.$$$ /q >& nul
*cd %1
dir /a:d /s /b /f >> %RAMD%\temp.$$$
*cd ..
set linenum=%@LINES[%RAMD%\temp.$$$]
set counter=0
if %linenum EQ -1 goto stop_it
:again
if %linenum GE %counter echo %@UPPER[%@LINE[%RAMD%\temp.$$$,%counter]]
if %linenum EQ %counter goto stop_it
set counter=%@EVAL[%counter+1]
goto again
:stop_it
echo:
inkey /K"YyNn" Are you sure you want to proceed? (Y/N) %%yesno
iff %@UPPER[%yesno]! eq N! then
echo:
echo *** DELDIR Aborted ***
quit
endiff
set counter=%linenum
echo:
if %linenum EQ -1 goto 2stop_it
:2again
if %linenum GE %counter echo Removing and deleting files in
********continued******** %@UPPER[%@LINE[%RAMD%\temp.$$$,%counter]]
if exist %@LINE[%RAMD%\temp.$$$,%counter]\*.* del
********continued******** %@LINE[%RAMD%\temp.$$$,%counter] /q /y /x /z
if not exist %@UPPER[%@LINE[%RAMD%\temp.$$$,%counter]]\*.* *rd
********continued******** %@LINE[%RAMD%\temp.$$$,%counter] >& nul
if %counter EQ 0 goto 2stop_it
set counter=%@EVAL[%counter-1]
goto 2again
:2stop_it
echo Removing and deleting files in %@UPPER[%@FULL[%1]]
if exist %@UPPER[%@FULL[%1]] del %@FULL[%1] /q /y /x /z
if not exist %@UPPER[%@FULL[%1]] *rd %@UPPER[%@FULL[%1]] >& nul
del %RAMD%\temp.$$$ /q
_ _ _ O / _ _ C_U_T_ H_E_R_E_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
O \
Note: append the lines with '*********continued*********' to
the previus line.
%RAMD% is an enviromment variable set at boot-up in Autoexec.bat
pointing to a ram disk (SET RAMD=D:). If RAMD is not set, the current
disk will be used.
Note that in the section where the deletion begins, it now starts with
the last line in TEMP.$$$ and works it's way up. If you work from the
top down, any directory that had nested subdirectories could not be
removed. This way, the directory furthest down the tree is removed
first, making it possible to remove it's parent directory.
Also, in the section where you echo out the directory names for
viewing and approval of deletion, the first line of TEMP.$$$ won't be
echoed if your Counter variable is originally set to 1. To echo the
first line of a file, the syntax is %@LINE[Filename,0]. I'm not sure
why it's 0 instead of 1, but after some testing, that proved to be the
case.
You had originally used the command line switch /h with the Delete
command. This is not a valid switch. I'm assuming you wanted to
delete hidden, system, and read-only files, and the proper switch for
that is /z.
The code can be made even shorter by replacing the code to echo out
TEMP.$$$ line by line:
set linenum=%@LINES[%RAMD%\temp.$$$]
.
.
.
:stop_it
with the single line:
type %RAMD%\temp.$$$
but that's not _nearly_ as elegant.
Bill
---
* Origin: Bill Harting, Justice League Headquarters (1:3603/150.88)
------------------------------------------------------------------------
Echo Flag : Permanent: N Export: N Personal Read: N
BBS: ESCMAIL Conference: 4dos(ECHO) Imported: 5/09/1992
To: SIMON JOSEFSSON Num: 229 Date: 5/04/1992
From: JUSSI JAASKELAINEN Re: Time: 4:43 pm
Subj: Deleting Files Prvt: N Read: N
> RF> I'm sure some enterprising 4DOS BTM programmer could create one, but
> RF> I've found that DRDEL.COM works perfectly. It even searches for and
> RF> deletes hidden/readonly/system files within the directory structure.
> If someone would be interested, here's my DDIR (DeleteDIR):
Why do every thing so hard way... Next alias do every same...
Alias ZAP `del %&\. /sx /z`
Alias dels all files (including Hidden, read-only, system) and all
sub-dirs...
SM FAdpC
---
* Origin: SM Home Point.... Point of Salpu Ra. (2:221/105.5)
------------------------------------------------------------------------
Echo Flag : Permanent: N Export: N Personal Read: N
BBS: ESCMAIL Conference: 4dos(ECHO) Imported: 5/09/1992
To: ALL Num: 170 Date: 5/04/1992
From: WILLIAM HUGHES Re: Time: 7:47 pm
Subj: Rounding Numbers Prvt: N Read: N
CORRECTED COPY (Sorry, found a couple of glitches in the one I posted
yesterday)
::
----------------------------------------------------------------------------
:: File : ROUND.BTM
:: Purpose : Round numeric data to specified position
:: Parameters : 1 - Position, 2 - Number to be rounded (see OOPS)
:: Usage : ROUND [POS] [NUMBER]
:: Comments : Returns environment variable _RND_
:: Author : William Hughes @ 1:387\255
:: Date : 3 May 92
::
---------------------------------------------------------------------------
if "%1"=="" .OR. "%2"=="" goto ROUND_OOPS
set _RND_=0
set VAL_IN=%2
set INT_IN=%@int[%VAL_IN]
set DEC_IN=%@eval[%VAL_IN-%@int[%VAL_IN]]
if %1 LT 1 goto FRACTION
if %1 GT 1 goto INTEGERS
if %1 EQ 1 goto UNITS
goto OOPS
:FRACTION
set ZEROS=%@len[%1]
set CORR_F=%@substr[10000000000,0,%ZEROS]
set SHIFT=%@eval[%DEC_IN*%CORR_F]
set CHECK=%@eval[%SHIFT-%@int[%SHIFT]]
iff %@eval[%CHECK-0.5] LT 0 then
set DEC=%@eval[%@int[%SHIFT]/%CORR_F]
else
set DEC=%@eval[%@eval[%@int[%SHIFT]+1]/%CORR_F]
endiff
set _RND_=%@eval[%INT_IN+%DEC]
goto ROUND_ENDIT
:UNITS
iff %@eval[%DEC_IN-.5] LT 0 then
set _RND_=%INT_IN
else
set _RND_=%@eval[%INT_IN+1]
endiff
goto ROUND_ENDIT
:INTEGERS
set CORR_F=%1
set SHIFT=%@eval[%INT_IN/%CORR_F]
set CHECK=%@eval[%SHIFT-%@int[%SHIFT]]
iff %@eval[%CHECK-0.5] LT 0 then
set _RND_=%@eval[%@int[%SHIFT]*%CORR_F]
else
set _RND_=%@eval[%@eval[%@int[%SHIFT]+1]*%CORR_F]
endiff
goto ROUND_ENDIT
:ROUND_OOPS
echo Syntax - ROUND [units] [number to be rounded]
echo.
echo where [units] is .01 = hundredths
echo .1 = tenths
echo 1 = units
echo 10 = tens
echons
echo
echo and so forth. The program is open-ended (within the limits of 4DOS).
echo.
echo ROUND returns the rounded value in the environment variable _RND_.
:ROUND_ENDIT
set VAL_IN=
set INT_IN=
set DEC_IN=
set SHIFT=
set CHECK=
set DEC=
set CORR_F=
set ZEROS=
* SLMR 2.1a *
--- MsgToss 2.0b (r)
* Origin: Nul 512-615-NUL1 HST/V32b,615-NUL2, NUL3, 1.2Gig (1:387/255)
------------------------------------------------------------------------
Echo Flag : Permanent: N Export: N Personal Read: N
BBS: ESCMAIL Conference: 4dos(ECHO) Imported: 5/09/1992
To: WILLIAM HUGHES Num: 206 Date: 5/06/1992
From: FURLAN PRIMUS Re: Time: 4:15 pm
Subj: Rounding Numbers Prvt: N Read: N
Hello William,
languaging in a message on <May 04 19:47>, in 4DOS, you wrote:
WH> :ROUND_OOPS
WH> echo Syntax - ROUND [units] [number to be rounded]
WH> echo.
WH> echo where [units] is .01 = hundredths
WH> echo .1 = tenths
WH> echo 1 = units
WH> echo 10 = tens
WH> echons
WH> echo
WH> echo and so forth. The program is open-ended (within the limits
WH> of 4DOS).
WH> echo.
WH> echo ROUND returns the rounded value in the environment variable
WH> _RND_.
WH> :ROUND_ENDIT
WH> set VAL_IN=
WH> set INT_IN=
WH> set DEC_IN=
WH> set SHIFT=
WH> set CHECK=
WH> set DEC=
WH> set CORR_F=
WH> set ZEROS=
nice idea! how about:
:ROUND_OOPS
cls
TEXT
Syntax - ROUND [units] [number to be rounded]
where [units] is .01 = hundredths
.1 = tenths
1 = units
10 = tens
and so forth. The program is open-ended (within the limits of 4DOS).
ROUND returns the rounded value in the environment variable _RND_.
ENDTEXT
goto coda
-------------------------------
and:
:ROUND_ENDIT
unset VAL_IN INT_IN DEC_IN SHIFT CHECK DEC CORR_F ZEROS
:CODA
fl
--- msgedsq 2.0.5
* Origin: This is only a test. For the next sixty.... (1:141/590)
)
------------------------------------------------------------------------
Echo Flag : Permanent: N Export: N Personal Read: N
BBS: ESCMAIL Conference: 4dos(ECHO) Imported: 5/09/1992
To: ALL Num: 171 Date: 5/04/1992
From: WILLIAM HUGHES Re: Time: 7:49 pm
Subj: Variable Length Prvt: N Read: N
Ever needed to output environment variables in a columnar format?
For example, a list of names and phone numbers? Try this one...
::
----------------------------------------------------------------------------
:: File : VARLEN.BTM
:: Purpose : Set variable to specified length (for output formatting)
:: Parameters : 1 - Length, 2 - Variable value to be edited
:: Usage : VARLEN [LENGTH] [VARIABLE]
:: Comments : Returns environment variable _VARLEN_
:: Author : William Hughes @ 1:387/255
:: Date : 4 May 92
::
---------------------------------------------------------------------------
if "%1"=="" .OR. "%2"=="" goto VL_OOPS
set _VARLEN_=0
set L_FLAG=N
set VAL_IN=%2
:VL_LOOP
iff %@len[%VAL_IN] LT %1 then
set VAL_IN= %VAL_IN
set L_FLAG=Y
else
set L_FLAG=N
endiff
if %L_FLAG=Y goto VL_LOOP
set _VARLEN_=%VAL_IN
goto VL_ENDIT
:VL_OOPS
echo Syntax - VARLEN [length] [variable]
echo.
echo VARLEN returns the edited value in the environment variable _VARLEN_.
echo.
echo NOTE - If the variable is longer than the specified length, it will be
echo returned unchanged
:VL_ENDIT
set VAL_IN=
set L_FLAG=
* SLMR 2.1a *
--- MsgToss 2.0b (r)
* Origin: Nul 512-615-NUL1 HST/V32b,615-NUL2, NUL3, 1.2Gig (1:387/255)
------------------------------------------------------------------------
Echo Flag : Permanent: N Export: N Personal Read: N
BBS: ESCMAIL Conference: 4dos(ECHO) Imported: 5/10/1992
To: JUHO LAITINEN Num: 246 Date: 5/07/1992
From: STEN DRESCHER Re: Time: 7:41 pm
Subj: Problems... Prvt: N Read: N
JL> I have a problem. I'd like to have kinda "internal" calculator while
JL> using 4DOS. So, I made myself an alias like this;
JL>
JL> cal=echo %@eval[%1]
JL>
JL> It works quite well with normal *-+ - calculations. In the online-help
JL> they have written this function (eval) could do all /*-+% -
calculations.
JL> Doesn't seem so to me. Maybe someone real software guru could enlighten
JL> me the subject...?
Try using
cal=echo[%&]
The / character splits the parameter list, so if, for example,
you entered
cal 34/2
%1 wouuld only be '34' and %2 would be '/2'. %& would be
'34/2', which is what you want.
-Sten
--- EZPoint V2.2
* Origin: Ten Forward.NUL, San Antonio, TX (1:387/255.104)
------------------------------------------------------------------------
Echo Flag : Y Permanent: N Export: N Personal Read: N
BBS: ASTRIX Conference: 4DOS Imported: 5/10/1992
To: JOHN DURSO Num: 12416 Date: 5/03/1992
From: TOM RAWSON Re: 0 Time: 1:28 pm
Subj: 4DOS CHANGE DATE? Prvt: N Read: N
JD>Is there any way to change the date of a file (binary) to the
JD>current day in 4DOS? In MS DOS I could do this by copying it to
JD>itself:
Try this:
type nul>zb (creates a 0-byte file)
copy file+zb (appends the 0-byte file to the original)
That should work in either command processor.
... Tom
PCRelay:CHANNEL -> #15 RelayNet (tm)
PCRelay:DCINFO -> #16 MetroLink (tm) International Network
4.10 DC Info Exchange MetroLink International Hub
------------------------------------------------------------------------
Echo Flag : Y Permanent: N Export: N Personal Read: N
BBS: ASTRIX Conference: 4DOS Imported: 5/10/1992
To: JOHN DURSO Num: 12415 Date: 5/03/1992
From: TOM RAWSON Re: 0 Time: 1:24 pm
Subj: 4DOS SCREEN EFFECTS Prvt: N Read: N
JD>In 4DOS, is there a way to change the effects of text displayed on
JD>a mono screen while running a batch program? I see you can change
JD>the colors for a color monitor, but how can you reverse the text
JD>or make it blink or make it bold on a Mono monitor?
All the following should work as 4DOS color specs (COLOR, CLS, COLORDIR,
SCRPUT, etc.) on a mono system:
white on black
bright white on black
blink white on black
bright blink white on black
black on white
blink black on white
I don't think "bright black" will do much for you <g> so I left it out,
but all the above should work.
... Tom
PCRelay:CHANNEL -> #15 RelayNet (tm)
------------------------------------------------------------------------
Echo Flag : Y Permanent: N Export: N Personal Read: N
BBS: ASTRIX Conference: 4DOS Imported: 5/10/1992
To: JOHN DURSO Num: 12393 Date: 5/02/1992
From: DON GARRETT Re: 0 Time: 7:35 pm
Subj: CAN 4DOS DO IT? Prvt: N Read: N
JD}Is there a way to get 4dos to copy files from a dir command that
JD}was saved to a file? For example.
JD}if a dir > file command leaves the following in a file, could you
JD}get 4dos to read this file and copy the 8 files to d:\ ?
JD}If so, how? I know your going to say, why not just type a batch
JD}file with the names in there saying to copy them directly. But a
JD}program I use creates these files in this format.
Yep! 4DOS can do anything!{g}
Like this:
dir /b /f > file.lst
for %%n in (@file.lst) do copy %%n d:\
Note that the /b and /f switches give me the full path format of
the file names with no header or footer.
{don}
PCRelay:CYBER -> #254 RelayNet (tm)
------------------------------------------------------------------------
Echo Flag : Y Permanent: N Export: N Personal Read: N
BBS: ASTRIX Conference: 4DOS Imported: 5/10/1992
To: KINLEY BRAUER Num: 12491 Date: 5/07/1992
From: DENNIS MCCUNNEY Re: 0 Time: 3:08 pm
Subj: CAN 4DOS DO IT? Prvt: N Read: N
KB> OK, then how about using a dir to create a filelist of only new files
KB> across all subdirectories to then be PKZIPed. And if in the process I
KB> could exclude some files, even better.
Something like this might do it (untested, but will give you the
idea):
: backnew.btm - create ZIP containing all new files on drive
@echo off
: change to root directory
pushd \
: execute in each sub-directory on the drive, against all files
: in the dir
global for %%file in (*.*) do (
: for each file, see if file datestamp matches current date
: if it does, write out full pathname of file to "ziplist
: in the directory pointed to by %temp
: (the following 2 lines should be on one line)
except (%1) if "%@filedate[%file]=="%_date" echo %@name[%file]
>>%temp\ziplist
)
: run PKZIP, and pass it the list of files we generated
pkzip -a -ex newfiles @%temp\ziplist.txt
: return to starting location
popd
PCRelay:RUNNINGB -> #3 RelayNet (tm)
4.11 Running Board 2126541349/DS/2125191791/HST/
PCRelay:DCINFO -> #16 MetroLink (tm) International Network
4.10 DC Info Exchange MetroLink International Hub
------------------------------------------------------------------------
Echo Flag : Y Permanent: N Export: N Personal Read: N
BBS: ASTRIX Conference: 4DOS Imported: 5/10/1992
To: ALL Num: 12369 Date: 4/30/1992
From: RICHARD AMICK Re: 0 Time: 5:16 pm
Subj: Hidden 4DOS 4.0 Feature Prvt: N Read: N
As you undoubtedly know, the Tab, Shift-Tab, and Ctrl-Bksp keys are
provided as equivalents for F9, F8, and Ctrl-R, respectively. If you've
ever wanted to eliminate their special behavior for any reason, there's
a way to do it. The undocumented ClearKeyMap command in 4DOS.INI clears
the remapping for Tab, Shift-Tab, and Ctrl-Bksp, allowing you to do with
them what you will. I HAVE tried it myself, and it WILL work in primary
or secondary shells, though ClearKeyMap must be in the file when you
reboot to take effect.
---
■ OLX 2.2 ■ Möbius strippers never show you their back side.
PCRelay:EDSHOME -> #780 RelayNet (tm)
------------------------------------------------------------------------
Echo Flag : Y Permanent: N Export: N Personal Read: N
BBS: ASTRIX Conference: 4DOS Imported: 5/10/1992
To: ED AURIA Num: 12459 Date: 5/05/1992
From: DAVID KUNZ Re: 12149 Time: 7:46 pm
Subj: REFERENCE BY REFERENCE Prvt: N Read: N
EA║ Anyone who can help, please do. I'm trying to reference an
EA║ environment variable in terms of another. Allow me to illustrate:
EA║
EA║ SET IDX = 1
EA║ INPUT %%ITEM%IDX ;sets ITEM1 input
EA║ ECHO %ITEM%%IDX ;should reference ITEM1
EA║
EA║ This approach doesn't work. I would appeciate any and all input from
EA║ wherever it may come.
This is described somewhere in the manual. I had the same problem and
finally, in despiration, I RFTM <grin>. But...
───<snip>─<snip>───<snip>──────────────────────────────────────────────────────
The variable names you use this way may contain any alphabetic
or numeric characters, the underscore character [_], and the
dollar sign [$]. You can force 4DOS to accept other
characters by including the full variable name in square
brackets, like this: %[AB##2]. You can also "nest"
environment variables using square brackets. For example
%[%var1] means "the contents of the variable whose name is
stored in VAR1".
───<snip>─<snip>───<snip>──────────────────────────────────────────────────────
I just tested the following:
setlocal
set a=1
input %%b%a
echo %[b%a]
Hope that this helps!
David Kunz
---
■ MegaMail : fraud(n): Telephone support number starting with "1-900"
PCRelay:WTHREEJP -> #75 RelayNet (tm)
------------------------------------------------------------------------
Echo Flag : Y Permanent: N Export: N Personal Read: N
BBS: ASTRIX Conference: 4DOS Imported: 5/10/1992
To: MARK SHADLEY Num: 12516 Date: 5/08/1992
From: DAVID KUNZ Re: 0 Time: 6:35 pm
Subj: REFERENCE BY REFERENCE Prvt: N Read: N
MS║ EA│ Anyone who can help, please do. I'm trying to reference an
MS║ │ environment variable in terms of another. Allow me to illustrate:
MS║
MS║ EA│ SET IDX = 1
MS║ │ INPUT %%ITEM%IDX ;sets ITEM1 input
MS║ │ ECHO %ITEM%%IDX ;should reference ITEM1
MS║
MS║ EA│ This approach doesn't work. I would appeciate any and all input fr
MS║ │ wherever it may come.
MS║
MS║ EA│ Ed Auria
MS║
MS║ Try:
MS║
MS║ SET IDX=1
MS║ INPUT %%ITEM
MS║ ECHO %ITEM%%IDX
I believe that he is trying to use idx as an index like an array. In
this case, the manual recommends using the following syntax:
%[item%idx]. Try it (replace <at> with "at" sign):
echo off
setlocal
: store even numbers from 2-20 in item[idx]
set idx=1
:loop1
set item%idx=%<at>eval[%idx*2]
set idx=%<at>eval[%idx+1]
if %idx le 10 goto loop1
: recall numbers from item[idx]
set idx=1
:loop2
echo %[item%idx]
set idx=%<at>eval[%idx+1]
if %idx le 10 goto loop2
It will give you the even numbers from 2-20.
David Kunz
---
■ MegaMail : Stupidity does not qualify as a handicap, park elsewhere!
PCRelay:WTHREEJP -> #75 RelayNet (tm)
PCRelay:DCINFO -> #16 MetroLink (tm) International Network
4.10 DC Info Exchange MetroLink International Hub
------------------------------------------------------------------------
Echo Flag : Y Permanent: N Export: N Personal Read: N
BBS: ASTRIX Conference: 4DOS Imported: 5/10/1992
To: ALL Num: 12355 Date: 4/28/1992
From: DAVID CRONSHAW Re: 0 Time: 9:33 am
Subj: Saving/Renaming .QWK file Prvt: N Read: N
People reading this are, by definition, BBS users. Many will probably
use offline mail readers, as I do. In doing so, I found I wanted to save
my .QWK files, but since they're always downloaded with the same name,
for a given BBS, they must be renamed if they're not to overwrite
earlier versions. I decided to rename the files when saving by adding
two digits to the name. e.g. File DOWNEY.QWK would be saved as
DOWNEY31.QWK
if I'd already saved previous .QWK files from the DOWNEY BBS as
DOWNEY01.QWK through DOWNEY30.QWK.
So, I automated the renaming and saving using some of 4DOS's facilities.
Here's the .BAT file extract (I have it in the .BAT file which invokes
my COMM program (Boyan 5.0)).
Note: It isn't necessary for ALL the previously saved .QWK files to
exist in the save directory, the routine finds only the highest numbered
one. So you can delete, or archive, earlier ones, just leave the most
recently saved one in the save directory.
If it's useful to you, enjoy it! If not, toss it!
:chkmail
rem %RD% is environment var holding path to temp or RAM disk (e.g. E:\)
rem %HD% is environment var holding path to main disk (e.g. C:\).
rem Command separator char is '&' (may cause trouble in this comment)
rem .QWK files are downloaded into Boyan50\bbs\files directory
rem .QWK files are saved in %HD%boyan50\bbs\mail directory.
rem Check if any .QWK files downloaded
if not exist %RD%boyan50\bbs\files\*.qwk goto endjob
rem Initialize vars used (A1=1st digit, A2=2nd digit, FA= .QWK file name)
set A1=0
set A2=0
set FA=
for %A in (%RD%boyan50\bbs\files\*.qwk) set FA=%@NAME[%A]
rem Get value of 1st digit for most recent previously saved .QWK file
for %A in (9 8 7 6 5 4 3 2 1 0) do (
if exist %HD%boyan50\bbs\mail\%[FA]%A?.qwk (set A1=%A & goto gota1))
:gota1
rem Get value of 2nd digit of most recentl previously saved .QWK file
for %A in (9 8 7 6 5 4 3 2 1 0) do (
if exist %HD%boyan50\bbs\mail\%[FA]%[A1]%A.qwk (set A2=%A & goto gota2))
:gota2
rem Convert digits to numeric value and increment it.
set FN=%@EVAL[%[A1]%A2+1]
rem Cycle back to 1 if overflow
if %FN/==100/ set FN=1
rem Add leading '0' if value is single digit
if %FN/ LT 10/ set FN=`0`%FN
rem Save and rename new .QWK file
move %RD%boyan50\bbs\files\%FA%.qwk %HD%boyan50\bbs\mail\%[FA]%FN.qwk
rem Cycle back to check for more .QWK files
goto chkmail
PCRelay:DOWNEY -> #1435 RelayNet (tm)
4.11 The Downey BBS, Downey CA 310-806-2226 v.32
PCRelay:DCINFO -> #16 MetroLink (tm) International Network
4.10 DC Info Exchange MetroLink International Hub
------------------------------------------------------------------------
Echo Flag : Y Permanent: N Export: N Personal Read: N
BBS: ASTRIX Conference: 4DOS Imported: 5/10/1992
To: DAVID CRONSHAW Num: 12376 Date: 4/30/1992
From: JAY HANNA Re: 0 Time: 1:22 am
Subj: SAVING/RENAMING .QWK FILE Prvt: N Read: N
DC>People reading this are, by definition, BBS users. Many will probably
DC>use offline mail readers, as I do. In doing so, I found I wanted to save
DC>my .QWK files, but since they're always downloaded with the same name,
David I had the same problem, and although my solution isn't as elegant it
works like a charm.
zed=move c:\telix\mail\zed.qwk a:^if exist c:\telix\up\zed.rep copy
c:\telix\up\zed.rep a:^ren a:zed.* %_date.*
Now I have saved mail packets with new names 04-29-92.qwk and 04-29-92.rep
⌠
⌡Æy
---
■ SLMR 2.1 ■ Always practice safe hex!
PCRelay:ZED -> #200 RelayNet (tm)
------------------------------------------------------------------------
Echo Flag : Y Permanent: N Export: N Personal Read: N
BBS: ASTRIX Conference: 4DOS Imported: 5/10/1992
To: DAVID CRONSHAW Num: 12456 Date: 5/05/1992
From: STANLEY KOHN Re: 0 Time: 5:46 am
Subj: Saving/Renaming .QWK file Prvt: N Read: N
DC>... I found I wanted to save
DC>my .QWK files, but since they're always downloaded with the same name,
DC>for a given BBS, they must be renamed if they're not to overwrite
DC>earlier versions. I decided to rename the files when saving by adding
DC>two digits to the name. e.g. File DOWNEY.QWK would be saved as
DC>DOWNEY31.QWK
I also have written a 4DOS batch file to do the same thing. It simply
numbers the QWK files in sequence. It is not necessary to use a strict
two digit naming sequence.
REM Rename QMail downloads
:newqm
REM Script to rename QWK packets in numbered sequence
REM Usage: newqm <BBS name>
@echo off
setlocal
REM all QWK files are in directory c:\files
cd c:\files
REM Set BBS name
set bbs=%@name[%1]
set start=%@len[%bbs]
echo bbs = %bbs
REM Number will be the sequence number of new file
set number=0
REM Find Highest number used so far
for %%p in (%bbs*.qwk) do (
set g=%@name[%p]
iff %g != %bbs then
set i=%@substr[%g, %start, 6]
iff %i GT %number then
set number=%i
endiff
endiff
)
REM add 1 to number
set number=%@eval[%number + 1]
REM Rename File
ren %bbs.qwk %bbs%%number%.qwk
endlocal
It is amazing how much the latest improvements to 4DOS are starting to
make the batch language look like a real language.
---
■ DeLuxe² 1.21 #9319 ■ .
■ RNet 1.08G:MISSING
PCRelay:DCINFO -> #16 MetroLink (tm) International Network
4.10 DC Info Exchange MetroLink International Hub
------------------------------------------------------------------------
Echo Flag : Y Permanent: N Export: N Personal Read: N
BBS: ASTRIX Conference: 4DOS Imported: 5/10/1992
To: LOREN OLSON Num: 12410 Date: 5/03/1992
From: TOM RAWSON Re: 0 Time: 12:20 pm
Subj: SELECT Prvt: N Read: N
LO>I am finding so many uses for the select command now. But, I would to
LO>find a way to assign the select command to different keys. I suspect
LO>this can be done. In this way I could use copy, delete, move and so on
LO>in a much easier fashion.
Sorry for the delay here Loren ...
How about this. First step, make it an alias:
alias sdel=`select del (%&)`
Now you want it assigned to (say) F5? Try this:
alias @F5=`sdel `
This will just put 'sdel ' on a line when you press F5. Then you type
the filename specification and hit Enter, eg if you type
"<F5>*.bak<Enter>" it is the same as "select del (*.bak)<Enter>".
One more, let's say you want to do it with *.* on a regular basis, then
you can assign it to a key alias like the above (say Shift-F5) and not
even have to hit Enter:
alias @Shift-F5=`select del (*.*)r`
(see the manual for details on what the r is doing).
... Tom
PCRelay:CHANNEL -> #15 RelayNet (tm)
------------------------------------------------------------------------
Echo Flag : Permanent: N Export: N Personal Read: N
BBS: ESCMAIL Conference: 4dos(ECHO) Imported: 5/15/1992
To: ROY MCNEILL Num: 319 Date: 5/12/1992
From: WILLIAM HUGHES Re: Time: 9:10 am
Subj: 4start.btm And 4dos.in Prvt: N Read: N
RM>Here is THE classic use of 4start.btm. Haven't you ever been
>shelled out to dos from (say) 123 to do some dos things, and
>then restarted by typing 123 instead of exit ? because
>you forgot you were shelled? This is my 4start.btm:
I put the shell indicator in my standard prompt...
PROMPT=$_$_$E[37;40;1mUTSA $E[37;44;1m * $E[37;41;1m<ASCII223x3>$E
[37;40;1m CWR $E[37m* $E[32m$T * $d $_$E[
33m$XC: (%%@DISKFREE[C:,k]K) * $XD: (%%
@DISKFREE[D:,k]K)$E[37m * $E[34mMemory: %
@dosmem[K]K$_$E[35m%%BOOT * 4DOS %_4VER * MSDOS %_DOSVER $E
[37m* $E[36mShell: $z $E[37m* $E[37m$P$G
^^^^^^^^^^
so I always know where I am. :-)
[Note: The %%BOOT is from BOOT.SYS]
* SLMR 2.1a *
--- MsgToss 2.0b (r)
* Origin: Nul 512-615-NUL1 HST/V32b,615-NUL2, NUL3, 1.2Gig (1:387/255)
------------------------------------------------------------------------
Echo Flag : Permanent: N Export: N Personal Read: N
BBS: ESCMAIL Conference: 4dos(ECHO) Imported: 5/15/1992
To: JONATHAN RAPOPORT Num: 315 Date: 5/12/1992
From: DARRYL GREGORASH Re: Time: 2:54 am
Subj: Recommended 4DOS.INI sett Prvt: N Read: N
> Here is my 4dos.ini file.
What DOS version? Using 5.0, I made up a self-extracting archive file (arj
in this case, due to path storage and creation capability) containing (as a
minimum) 4dos.com and 4dos.ini (and 4start/4exit.btm, if you use those) --
having enough available memory, you may wish to include the help files as
well, if you go this route.
Having created a RAM drive in config.sys, I then added the following lines to
the system configuration:
install=d:\4dos40\4exec.exe -y
...
SHELL=i:\4DOS.COM i:\ @i:\4dos.ini
Bingo: system boots from the RAM drive, and always looks there for 4dos.ini,
etc, which speeds things up a fair bit.
DOS bitches about some illegal statement or whatnot, but that is only because
the exec doesn't stay resident -- affects system operation not one iota.
--- GEcho 1.00/beta
* Origin: if not (%@eval[2+2]) == (4) echo !@#@#$)& (1:140/86)
------------------------------------------------------------------------
Echo Flag : Permanent: N Export: N Personal Read: N
BBS: ESCMAIL Conference: 4dos(ECHO) Imported: 5/15/1992
To: JEFFERY FOY Num: 329 Date: 5/13/1992
From: DEREK GLIDDEN Re: Time: 5:12 pm
Subj: Using "/" instead of "\" Prvt: N Read: N
>> 'lo all. I've become a bit spoiled by the Unix convention of using a
>> formward slash "/" to separate directory names (i.e. cd /4dos/btm/fun).
>> Can I do this with 4dos? Is there some patch to 4dos to make it work? I
>> absolutely HATE using "\"...
I've gone back and forth from UNIX to DOS to OS/2 locally and on other
machines I work on, so I'm doing the same thing. I've never had any
problems getting 4DOS to recognize \==/ when changing directories. I'm
using 4.0 the 11-18-91 files.
The only thing you may have to do is seperate the CD from the first slash
with a space. (Just like UNIX anyway, so you're probably used to it.)
At least in my experience, under 4DOS, "CD \UTIL" == "CD /UTIL"
--- DCI/Chauncy 0.5f
* Origin: The Slut Club -- 813-689-1150 (1:377/42.0)
------------------------------------------------------------------------
Echo Flag : Y Permanent: N Export: N Personal Read: N
BBS: ASTRIX Conference: 4DOS Imported: 5/14/1992
To: ALL Num: 12355 Date: 4/28/1992
From: DAVID CRONSHAW Re: 0 Time: 9:33 am
Subj: Saving/Renaming .QWK file Prvt: N Read: N
People reading this are, by definition, BBS users. Many will probably
use offline mail readers, as I do. In doing so, I found I wanted to save
my .QWK files, but since they're always downloaded with the same name,
for a given BBS, they must be renamed if they're not to overwrite
earlier versions. I decided to rename the files when saving by adding
two digits to the name. e.g. File DOWNEY.QWK would be saved as
DOWNEY31.QWK
if I'd already saved previous .QWK files from the DOWNEY BBS as
DOWNEY01.QWK through DOWNEY30.QWK.
So, I automated the renaming and saving using some of 4DOS's facilities.
Here's the .BAT file extract (I have it in the .BAT file which invokes
my COMM program (Boyan 5.0)).
Note: It isn't necessary for ALL the previously saved .QWK files to
exist in the save directory, the routine finds only the highest numbered
one. So you can delete, or archive, earlier ones, just leave the most
recently saved one in the save directory.
If it's useful to you, enjoy it! If not, toss it!
:chkmail
rem %RD% is environment var holding path to temp or RAM disk (e.g. E:\)
rem %HD% is environment var holding path to main disk (e.g. C:\).
rem Command separator char is '&' (may cause trouble in this comment)
rem .QWK files are downloaded into Boyan50\bbs\files directory
rem .QWK files are saved in %HD%boyan50\bbs\mail directory.
rem Check if any .QWK files downloaded
if not exist %RD%boyan50\bbs\files\*.qwk goto endjob
rem Initialize vars used (A1=1st digit, A2=2nd digit, FA= .QWK file name)
set A1=0
set A2=0
set FA=
for %A in (%RD%boyan50\bbs\files\*.qwk) set FA=%@NAME[%A]
rem Get value of 1st digit for most recent previously saved .QWK file
for %A in (9 8 7 6 5 4 3 2 1 0) do (
if exist %HD%boyan50\bbs\mail\%[FA]%A?.qwk (set A1=%A & goto gota1))
:gota1
rem Get value of 2nd digit of most recentl previously saved .QWK file
for %A in (9 8 7 6 5 4 3 2 1 0) do (
if exist %HD%boyan50\bbs\mail\%[FA]%[A1]%A.qwk (set A2=%A & goto gota2))
:gota2
rem Convert digits to numeric value and increment it.
set FN=%@EVAL[%[A1]%A2+1]
rem Cycle back to 1 if overflow
if %FN/==100/ set FN=1
rem Add leading '0' if value is single digit
if %FN/ LT 10/ set FN=`0`%FN
rem Save and rename new .QWK file
move %RD%boyan50\bbs\files\%FA%.qwk %HD%boyan50\bbs\mail\%[FA]%FN.qwk
rem Cycle back to check for more .QWK files
goto chkmail
PCRelay:DOWNEY -> #1435 RelayNet (tm)
4.11 The Downey BBS, Downey CA 310-806-2226 v.32
PCRelay:DCINFO -> #16 MetroLink (tm) International Network
4.10 DC Info Exchange MetroLink International Hub
------------------------------------------------------------------------
Echo Flag : Y Permanent: N Export: N Personal Read: N
BBS: ASTRIX Conference: 4DOS Imported: 5/14/1992
To: DAVID CRONSHAW Num: 12376 Date: 4/30/1992
From: JAY HANNA Re: 0 Time: 1:22 am
Subj: SAVING/RENAMING .QWK FILE Prvt: N Read: N
DC>People reading this are, by definition, BBS users. Many will probably
DC>use offline mail readers, as I do. In doing so, I found I wanted to save
DC>my .QWK files, but since they're always downloaded with the same name,
David I had the same problem, and although my solution isn't as elegant it
works like a charm.
zed=move c:\telix\mail\zed.qwk a:^if exist c:\telix\up\zed.rep copy
c:\telix\up\zed.rep a:^ren a:zed.* %_date.*
Now I have saved mail packets with new names 04-29-92.qwk and 04-29-92.rep
⌠
⌡Æy
---
■ SLMR 2.1 ■ Always practice safe hex!
PCRelay:ZED -> #200 RelayNet (tm)
------------------------------------------------------------------------
Echo Flag : Y Permanent: N Export: N Personal Read: N
BBS: ASTRIX Conference: 4DOS Imported: 5/14/1992
To: DAVID CRONSHAW Num: 12395 Date: 5/01/1992
From: KINLEY BRAUER Re: 0 Time: 7:37 am
Subj: SAVING/RENAMING .QWK FILE Prvt: N Read: N
DC>>People reading this are, by definition, BBS users. Many will probably
DC>>use offline mail readers, as I do. In doing so, I found I wanted to save
DC>>my .QWK files, but since they're always downloaded with the same name,
DC>>for a given BBS, they must be renamed if they're not to overwrite
DC>>earlier versions. I decided to rename the files when saving . . .
I do the same thing in a batch file, but I change mine to a date in
the filename and number (up to ten) in the ext (in case I ever call up
the same board twice in one day). My crucial lines are:
FOR %A IN (BOARDNAM.QWK) REN %A
%#SUBSTR[%#NAME[%A],0,4]%#SUBSTR[%_DATE,0,2]%@SUBSTR[%_DATE,3,2].QWK
[above on one line]
IF EXIST *.QW9 REN *.QW9 *.QWA
FOR %A IN (8 7 6 5 4 3 2 1) IF EXIST *.QW%A% REN *.QW%A% *.QW%@EVAL[%A+1]
IF EXIST *.QWK REN *.QWK *.QW1
This will give a listing something like:
BOARD0430.QW2
BOARD0501.QW1
Etc.
---
■ OLX 2.2 ■ #3620 ■ Minneapolis, MN
PCRelay:BYTELINE -> #365 RelayNet (tm)
------------------------------------------------------------------------
Echo Flag : Y Permanent: N Export: N Personal Read: N
BBS: ASTRIX Conference: 4DOS Imported: 5/14/1992
To: DAVID CRONSHAW Num: 12456 Date: 5/05/1992
From: STANLEY KOHN Re: 0 Time: 5:46 am
Subj: Saving/Renaming .QWK file Prvt: N Read: N
DC>... I found I wanted to save
DC>my .QWK files, but since they're always downloaded with the same name,
DC>for a given BBS, they must be renamed if they're not to overwrite
DC>earlier versions. I decided to rename the files when saving by adding
DC>two digits to the name. e.g. File DOWNEY.QWK would be saved as
DC>DOWNEY31.QWK
I also have written a 4DOS batch file to do the same thing. It simply
numbers the QWK files in sequence. It is not necessary to use a strict
two digit naming sequence.
REM Rename QMail downloads
:newqm
REM Script to rename QWK packets in numbered sequence
REM Usage: newqm <BBS name>
@echo off
setlocal
REM all QWK files are in directory c:\files
cd c:\files
REM Set BBS name
set bbs=%@name[%1]
set start=%@len[%bbs]
echo bbs = %bbs
REM Number will be the sequence number of new file
set number=0
REM Find Highest number used so far
for %%p in (%bbs*.qwk) do (
set g=%@name[%p]
iff %g != %bbs then
set i=%@substr[%g, %start, 6]
iff %i GT %number then
set number=%i
endiff
endiff
)
REM add 1 to number
set number=%@eval[%number + 1]
REM Rename File
ren %bbs.qwk %bbs%%number%.qwk
endlocal
It is amazing how much the latest improvements to 4DOS are starting to
make the batch language look like a real language.
---
■ DeLuxe² 1.21 #9319 ■ .
■ RNet 1.08G:MISSING
PCRelay:DCINFO -> #16 MetroLink (tm) International Network
4.10 DC Info Exchange MetroLink International Hub
------------------------------------------------------------------------
Echo Flag : Permanent: N Export: N Personal Read: N
BBS: ESCMAIL Conference: 4dos(ECHO) Imported: 5/16/1992
To: BILL HARTING Num: 343 Date: 5/12/1992
From: SIMON JOSEFSSON Re: Time: 1:49 pm
Subj: Deleting Files Prvt: N Read: N
* In a msg on 09 May (21:46), Bill Harting of 1:3603/150.88 writes:
BH> Accually, that part of the code was from the original code posted by
BH> Jussi Jaaskelainen, which I just updated.
Actually, i wrote the original code, but.. what the heck.. :-)
BH> Since it worked well, I
BH> didn't touch it. Unfortunately, the code I DID touch was note the
BH> code I posted... It was one fix behind, and wouldn't remove files from
BH> the first directory name specified (Boy, do *I* feel smart :) ).
BH> Here's the proper code, with your suggestion.
I did come up with a smarter way of checking for param's, and my code is as
follows..:
_ _ _ O / _ _ C_U_T_ H_E_R_E_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
O \
@echo off
::
:: last updated: 05/12/92 sj
:: DELDIR - DeleteDIR, deletes and removes a path, with logging functions
::
if not %pth! eq ! unset pth
if not %_log! eq ! unset _log
iff %1! eq ! then
echo Usage : DELDIR [/M] [d:]path
quit
endiff
:chk4param
if %1! eq ! goto nomoreparams
iff %@SUBSTR[%1,0,1]! eq /! then
iff %@UPPER[%@SUBSTR[%1,1,1]]! eq M! then
set _log=dummy
goto rightparam
endiff
echo Invalid Parameter "%@LOWER[%1]"
echo Usage : DDIR [/M] [d:]path
quit
:rightparam
shift
goto chk4param
else
iff not exist %1\nul then
echo Invalid path "%@FULL[%1]"
echo 0 directory(s) zapped
quit
endiff
iff not %pth! eq ! then
echo Sorry, multiple paths not yet supported. Working on it /sj
endiff
if %pth! eq ! set pth=%1
shift
goto chk4param
endiff
:nomoreparams
echo:
echo The following directories, and all the files in them, will be removed:
echo:
echo %@UPPER[%@FULL[%pth]]
del %RAMD%\temp.$$$ /q >& nul
pushd %pth
dir /a:d /s /b /f >> %RAMD%\temp.$$$
popd
set linenum=%@LINES[%RAMD%\temp.$$$]
set counter=0
if %linenum EQ -1 goto stop_it
:again
if %linenum GE %counter echo %@UPPER[%@LINE[%RAMD%\temp.$$$,%counter]]
if %linenum EQ %counter goto stop_it
set counter=%@EVAL[%counter+1]
goto again
:stop_it
echo:
inkey /K"YyNn" Are you sure you want to proceed? (Y/N) %%yesno
iff %@UPPER[%yesno]! eq N! then
echo:
echo *** DELDIR Aborted ***
quit
endiff
set counter=%linenum
echo:
if %linenum EQ -1 goto 2stop_it
:2again
if %linenum GE %counter echo Removing and deleting files in
-------continued---------%@UPPER[%@LINE[%RAMD%\temp.$$$,%counter]]
if exist %@LINE[%RAMD%\temp.$$$,%counter]\*.* del
-------continued---------%@LINE[%RAMD%\temp.$$$,%counter] /q /y /x /z
if not exist %@LINE[%RAMD%\temp.$$$,%counter]\*.* rd
-------continued---------%@LINE[%RAMD%\temp.$$$,%counter] >& nul
if not %_log! eq ! log DDIR - Removed
-------continued---------%@UPPER[%@LINE[%RAMD%\temp.$$$,%counter]]\*.*
if %counter EQ 0 goto 2stop_it
set counter=%@EVAL[%counter-1]
goto 2again
:2stop_it
echo Removing and deleting files in %@UPPER[%@FULL[%pth]]
if exist %@FULL[%pth]\*.* del %@FULL[%pth] /q /y /x /z
if not %_log! eq ! log DDIR - Removed %@UPPER[%@FULL[%pth]]\*.*
if not exist %@FULL[%pth] rd %@FULL[%pth] >& nul
del %RAMD%\temp.$$$ /q
if not %pth! eq ! unset pth
if not %_log! eq ! unset _log
_ _ _ O / _ _ C_U_T_ H_E_R_E_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
O \
Any suggestions welcome.. working on multiple path's on command line..
Note: The batchfile uses a environmentvariable called RAMD, make sure it
points to you RAM-disk. If you don't have a RAM-disk, make sure you don't
have a RAMD-environmentvariable.. (DDIR.BTM will then place the temp-file in
the root-directory of the current drive..).
// JaS
--- msgedsq 2.0.5
* Origin: Simon Josefsson - Sweden, Stockholm. (2:201/111.34)
------------------------------------------------------------------------
Echo Flag : Permanent: N Export: N Personal Read: N
BBS: ESCMAIL Conference: 4dos(ECHO) Imported: 5/17/1992
To: THE AUTHOR Num: 378 Date: 5/14/1992
From: GK Re: Time: 8:35 pm
Subj: ND.BTM: modified just a l Prvt: N Read: N
I enjoyed the batch files you posted very much :-). Well, they didn't quite
work, so I had to tweak them a little, and got a bit carried away with the
tweaks...
- inclusion of the NDP variable, set at the top of each file,
though you could always set it in 4START or AUTOEXEC. This
=must= have a trailing backslash, and specifies where to
put the ND support files.
- file descriptions for the support files.
- testing for things before deleting them, and using some of
4DOS' switches for DEL.
- deleting a few things before piping to them, just in case
someone has noclobber turned on.
- removing the text/endtext pairs, which didn't seem to add
much to the functionality of ND.
- adding trailing % signs on environment variables, without
which ND failed.
- added the test for **eof** (which seemed necessary).
- added the test for disappearing directories, and asking the
user if they wanted to rescan.
- removed a few excess backslashes you had lying around the place.
- pulled NDR.BTM into ND.BTM and added the /r switch.
- rewired it using some more handy 4DOS things, like IFF.
Many thanks for posting the original batch files!
gk
=== [posting of modified version of ND] ===
@echo off
set ndp=c:\
iff "%1"=="/r" then
gosub RESCAN
shift
if "%1"=="" goto END
endiff
iff "%1"=="" then
iff "%ndn%"=="" then
echo usage: ND [/r] [directoryname]
goto END
endiff
set nd=%@line[%ndp%nd.dr1,%ndn%]
iff "%nd%"=="" .or. "%nd%"=="**eof**" then
set ndn=0
echo No more directories. ND again to re-cycle.
goto END
endiff
if not isdir %nd% goto NODIR
set ndn=%@eval[%ndn%+1]
else
if exist %ndp%nd.dr1 del /q /z %ndp%nd.dr1
c:\dos\find "%@upper[%1]" < %ndp%nd.dir > %ndp%nd.dr1
describe %ndp%nd.dr1 "nd.btm support file"
type %ndp%nd.dr1|input %%nd
iff "%nd%"=="" then
echo Can't find "%@upper[%1]".
goto END
endiff
if not isdir %nd% goto NODIR
set ndn=1
endiff
cdd %nd%
unset nd
goto END
:RESCAN
pushd
if exist %ndp%nd.dir del /q /z %ndp%nd.dir
for %a in (C F P Q) (
echo.
echo Scanning %a:
*cdd %a:\
global /iq (echo %@upper[%_cwd] >>!%ndp%nd.dir^echos *)
)
describe %ndp%nd.dir "nd.btm directory tree storage"
popd
return
:NODIR
echo Directory %nd% has vanished.
input `Rescan drives?` %%nd
iff not "%nd%"=="" .and. "%@substr[%@lower[%nd%],0,1]"=="y" then
gosub RESCAN
endiff
unset nd
goto END
:END
---
* Origin: deadly bloody serious v1.3 (3:680/828)
------------------------------------------------------------------------
Echo Flag : Y Permanent: N Export: N Personal Read: N
BBS: ASTRIX Conference: 4DOS Imported: 5/18/1992
To: JOHN DURSO Num: 12415 Date: 5/03/1992
From: TOM RAWSON Re: 0 Time: 1:24 pm
Subj: 4DOS SCREEN EFFECTS Prvt: N Read: N
JD>In 4DOS, is there a way to change the effects of text displayed on
JD>a mono screen while running a batch program? I see you can change
JD>the colors for a color monitor, but how can you reverse the text
JD>or make it blink or make it bold on a Mono monitor?
All the following should work as 4DOS color specs (COLOR, CLS, COLORDIR,
SCRPUT, etc.) on a mono system:
white on black
bright white on black
blink white on black
bright blink white on black
black on white
blink black on white
I don't think "bright black" will do much for you <g> so I left it out,
but all the above should work.
... Tom
PCRelay:CHANNEL -> #15 RelayNet (tm)
------------------------------------------------------------------------
Echo Flag : Permanent: N Export: N Personal Read: N
BBS: ESCMAIL Conference: 4dos(ECHO) Imported: 5/19/1992
To: BILL HARTING Num: 420 Date: 5/13/1992
From: JUSSI JAASKELAINEN Re: Time: 9:19 pm
Subj: Deleting Files Prvt: N Read: N
...
> Accually, that part of the code was from the original
> code posted by
> Jussi Jaaskelainen, which I just updated. Since it
> worked well, I
> didn't touch it. Unfortunately, the code I DID touch
> was note the
...
Hey... Hold on second... I know that I (and everybody in Finland) had miss
some 4DOS messages past last weeks (by reason that I don't know) but my
message:
Mon 4 May 92 16.43
By: Jussi Jaaskelainen
To: Simon Josefsson
Re: Deleting Files
------------------------------------------------------------
...
Why do every thing so hard way... Next alias do every same...
Alias ZAP `del %&\. /sx /z`
Alias dels all files (including Hidden, read-only, system) and all
sub-dirs...
...
in short was that... So I don't post any code only one internal command....
:)
So I'm little confuse what hell code you mean... Please resent message or
explain... :)
SM FAdpC
---
* Origin: SM Home Point.... Point of Salpu Ra. (2:221/105.5)
------------------------------------------------------------------------
Echo Flag : Y Permanent: N Export: N Personal Read: N
BBS: ASTRIX Conference: 4DOS Imported: 5/21/1992
To: DON GARRETT Num: 12737 Date: 5/19/1992
From: KINLEY BRAUER Re: 0 Time: 8:59 am
Subj: 4DOS BTM BACKUP Prvt: N Read: N
Here is my backup batch file. It presently relies on several small
shareware files: UNBACKED.COM, XTGOLD 2.5, TM.COM (from the old Norton
Utilities 4.5), PKZIP, MARK/RELEASE, STACKEY, and Patriquin's PATTR
attribute program and backs up to drive B. I'm sure you will see how
you can substitute 4DOS commands for the UNBACKED, TM, and attribute
programs. KEYSTACK does not seem to work as well as STACKEY. (The
program is old, but it works. I used some other program as a model,
and I've named the file MONBAK.BTM.) And I'm always looking for
ways to improve speed and efficiency.
-----------------------cut here-----------------------------------
:START
set select=B
cls bri white on blue
screen 2 0
drawbox 3 11 18 65 0 black on black fill black
drawbox 2 9 17 63 2 cyan on RED fill RED
drawhline 5 9 55 2 cyan on red
drawhline 7 9 55 2 cyan on red
drawhline 15 9 55 2 cyan on red
scrput 3 29 bri white ON red [MY NAME HERE]
scrput 4 29 bri white ON red MONTHLY BACKUP
scrput 6 21 bri whi on red Version 1.2 (7 February 1991)
scrput 9 13 bri yel on red 1. Backup unbacked files for month on B:
scrput 10 13 bri yel on red 2. Read list of backed-up files on B:
scrput 11 13 bri yel on red 3. Restore files from B: to C: in the
scrput 12 16 bri yel on red proper directory
scrput 14 12 bri cya on red LAST BACKUP:
screen 14 25
color bri whi on magenta
rem Echo time and date in file: \batch\monbak.log; see below
type c:\batch\monbak.log
color bri whi on blue
scrput 16 23 bri yel on red Hit "X" to return to DOS
screen 20 2
scrput 20 17 bri whi on blu CHOOSE ONE OF THE ABOVE BY NUMBER:
screen 20 52
INPUT %%FNUM
CLS
IF "%FNUM"=="X" GOTO END
if "%FNUM"=="x" GOTO END
IF "%FNUM"=="1" GOTO BACKUP
IF "%FNUM"=="2" GOTO LOOKUP
IF "%FNUM"=="3" GOTO RESTORE
:BACKUP
@ECHO OFF
CLS
CD \
rem Send unbacked files to FILELIST for editing
UNBACKED>FILELIST
rem Edit with dos editor (I use QEDIT, which I've renamed EDIT)
EDIT FILELIST
rem Zip edited FILELIST files with paths into backup file
PKZIP -BC: -PU B:MAYBAK @FILELIST
DEL FILELIST.* >NUL
rem Create log file with time and date of backup
CALL TM /L >\BATCH\MONBAK.LOG
rem Mark all files as backed up
PATTR *.* /S/AN >NUL
CLS
GOTO START
:LOOKUP
CLS
rem Go into zipped file on B: to see what is there
STACKEY @S "O" "D" CR A5 >NUL
C:\XTGOLD\XTGOLD B:
ECHO.
PAUSE
RELEASE /K /Q
CD C:\
GOTO START
:RESTORE
CLS
CD \
PKUNZIP -N -D B:MAYBAK C:
CLS
GOTO START
:END
CLS
CD \
-------------------------------end---------------------------------
(At the end of the month, I'll global change MAYBAK to JUNBAK.)
The screen should like like this, in glorious color:
╔═════════════════════════════════════════════════════╗
║ [MY NAME HERE] ║██
║ MONTHLY BACKUP ║ █
╠═════════════════════════════════════════════════════╣ █
║ Version 1.2 (7 February 1991) ║ █
╠═════════════════════════════════════════════════════╣ █
║ ║ █
║ 1. Backup unbacked files for month on B: ║ █
<<MESSAGE TOO LONG -- SOME LINES WERE DELETED>>
PCRelay:DCINFO -> #16 MetroLink International Network
4.10 DC Info Exchange MetroLink International Hub
------------------------------------------------------------------------
Echo Flag : Y Permanent: N Export: N Personal Read: N
BBS: ASTRIX Conference: 4DOS Imported: 5/21/1992
To: LARRY ALPERT Num: 12662 Date: 5/17/1992
From: DAVID KUNZ Re: 0 Time: 2:26 pm
Subj: 4DOS DEMO Prvt: N Read: N
My most useful utilities use SELECT and EXCEPT. I would show an
example of "select copy (a:*.*)" or "select del (*.*)".
One of the first things that I found that I couldn't live without was
command line recall, edit and history. I would definitely show these
features -- especially completing the file name.
You could also show some aliases. If they do a lot of zipping or
arjing you could show them the following:
SELARJ=iff "%1"=="" then echo Usage: DOARJ ARJNAME^else
if exist $temp$$$.tmp del $temp$$$.tmp^iff "%2"=="" then
select dir/f/b (*.*) >>$temp$$$.tmp^else select dir/f/b (%2)
>>$temp$$$.tmp^endiff^arj m -e %1 !$temp$$$.tmp^ del
$temp$$$.tmp^endiff
SELZIP=iff "%1"=="" then echo Usage: DOZIP ZIPNAME^else
if exist $temp$$$.tmp del $temp$$$.tmp^iff "%2"=="" then
select dir/f/b (*.*) >>$temp$$$.tmp^else select dir/f/b (%2)
>>$temp$$$.tmp^endiff^pkzip -am %1 <at>$temp$$$.tmp^ del
$temp$$$.tmp^endiff
(where <at> is the "at" character (<shift-2>)).
or, to run a program from a menu,
RUNP=SELECT (*.COM;*.EXE;*.BAT;*.BTM)
Hope that this helps!
David Kunz
---
■ MegaMail : He who laughs last probably made a backup.
PCRelay:WTHREEJP -> #75 RelayNet (tm)
------------------------------------------------------------------------
Echo Flag : Y Permanent: N Export: N Personal Read: N
BBS: ASTRIX Conference: 4DOS Imported: 5/21/1992
To: LARRY ALPERT Num: 12681 Date: 5/18/1992
From: DAVE LEMIRE Re: 0 Time: 8:04 am
Subj: 4dos demo 1/2 Prvt: N Read: N
LA> OK all of you 4dos gurus out there, let me run this one buy you.
> Now, at a local users group that I belong to, I am to give a
> demonstration on some of the features of 4dos (none of the members are
> using 4dos, although a few are using ndos, and even they do not believe
> it is actualy 4dos).
Larry,
[this is long and will probably get split -- hope you get both parts!]
The .BTM file below, combined with 4UNZIP, allows the user to
select a text file from a ZIP file for either viewing or, with the
/X parameter, for extraction. It uses the @_at_SELECT function,
and only requires the user to maintain a text file for input to
the menu as a separate configuration item. That file's got to be
updated when you add to the ZIP:
@echo off
if %1 == /h goto USAGE
pushd c:\rfcs
if "%1"=="/x" goto EXTRACT
iff NOT "%1" == "/x" then
set VVV=%@select[c:\rfcs\rfc_list, 2, 10, 20, 65, View which RFC?]
if "%vvv!" == "!" goto SKIP
call smode 43
color bright yellow on cyan border cyan
pku -c c:\rfcs\rfc_text.zip %@substr[ %vvv, 60, 15] | vbl /s
smode normal
color bright cyan on black border black
unset vvv
endiff
:EXTRACT
iff "%1" == "/x" then
4u c:\rfcs\rfc_text.zip
endiff
:SKIP
popd ^ quit
:USAGE
text
RFC.BTM - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
This batch file pops up a menu of available RFC files, and extracts the
selected file for viewing, unless the /X option is selected. If the option
is present, then the file and its description are extracted from the archive.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
endtext
The next batch file is my games menu from my home system, and is a
good example of creating a nice screen display under 4DOS.
REM -- GAMES.BTM: a program selection menuing system
REM -- the subdirectory tree for this batch file looks as follows:
: 729,573 26 ├───games
: 277,472 22 │ ├───blockout
: 142,438 4 │ ├───infocom
: 306,379 1 │ ├───larry
: 1,048,134 79 │ ├───rails
: 198,997 15 │ ├───tetris
: 165,198 3 │ ├───trek
: 550,379 22 │ ├───golf
: 281,629 66 │ ├───jeoprdy1
: 307,781 66 │ └───jeoprdy2
REM two programs referenced here: mypallet is an alias that calls
REM KC-SETPAL to selecte the EGA color pallet. This is helpful for cleaning
REM up after graphics games that muck with the pallet. PC Mag's PRISM utility
REM would be a good substitute for VGA. BURNOUT controls the screen
REM blanker. BURNOUT 0 turns it off, BURNOUT 5000 sets the timeout to
REM about 5 minutes. I turn it off for mouse-only games to ensure that
REM the screen doesn't blank in the middle of the game!
REM begin by going to the GAMES subdir, and making sure the mouse is loaded
@echo off ^ pushd c:\games ^ mark ^ mouse ^ cls ^ goto MENU
REM at exit, clear out the mouse
:EXIT
release ^ call mypallet
set game= ^ set again= ^ popd ^ 25 ^ burnout 5000 > nul: ^ cancel
:GOLF
burnout 0 >nul: ^ cd golf ^ golf2 ^ burnout 5000 >nul: ^ cd .. ^ goto MENU
REM this block is set up to allow re-invoking a one-play-at-a-time
REM game without returning to the full games menu
:TREK
cd trek ^ set again=
:PLAYTREK
trek ^ mypallet ^ color bri cyan on black
screen 6 6 ^ Inkey Do you wish to play again? %%again
if %again==y GOTO PLAYTREK ^ set again= ^ cd .. ^ goto MENU
:TETRIS
cd tetris ^ keystack "n" 13 ^ etetris ^ cd .. ^ goto MENU
<<MESSAGE TOO LONG -- SOME LINES WERE DELETED>>
PCRelay:DCINFO -> #16 MetroLink International Network
4.10 DC Info Exchange MetroLink International Hub
------------------------------------------------------------------------
Echo Flag : Y Permanent: N Export: N Personal Read: N
BBS: ASTRIX Conference: 4DOS Imported: 5/21/1992
To: LARRY ALPERT Num: 12682 Date: 5/18/1992
From: DAVE LEMIRE Re: 0 Time: 8:04 am
Subj: 4dos demo 2/2 Prvt: N Read: N
>>> Continued from previous message
REM this FOR loop prevents redisplay of the menu (which takes a little time)
REM if the input key wasn't valid. The same result can probably be achieved
REM with the INKEY /K optional parameter, I've just not tried that yet.
REM if the input key was a valid parameter, redisplay the menu, otherwise
REM just get another key.
for %check in (@59 @60 @61 @62 @63 @64 @65 @66 @67 @68 @84 @85 @86) if %check==%
goto GET_GAME
REM this subroutine displays the menu screen. the DRAWBOX, DRAWHLINE,
REM DRAWVLINE and SCRPUT commands are used
:MENU_DISPLAY
cls
drawbox 1 1 23 78 2 bri bla on black fil black
for %%a in (3 5 7 9 11 13 15 17 19 21 ) drawhline %%a 1 78 1 bri bla on black
drawvline 1 39 21 1 bri bla on black
scrput 0 24 bright yellow on red * * * * GAMES MENU * * * *
scrput 2 5 red on cyan F1
scrput 2 9 bri cyan on black -- Railroad Tycoon
scrput 2 43 red on cyan F2
scrput 2 47 bri cyan on black -- EGA Backgammon
scrput 4 5 red on cyan F3
scrput 4 9 bri cyan on black -- Blockout
scrput 4 43 red on cyan F4
scrput 4 47 bri cyan on black -- EGA Solitaire
scrput 6 5 red on cyan F5
scrput 6 9 bri cyan on black -- Gravity Wars
scrput 6 43 red on cyan F6
scrput 6 47 bri cyan on black -- PGA Tour Golf
scrput 8 5 red on cyan F7
scrput 8 9 bri cyan on black -- Jeopardy, 1st Ed.
scrput 8 43 red on cyan F8
scrput 8 47 bri cyan on black -- Jeopardy, 2nd Ed.
scrput 10 5 red on cyan F9
scrput 10 9 bri cyan on black -- Tetris
scrput 10 43 red on cyan F10
scrput 10 48 bri cyan on black - EGA Star Trek
scrput 12 5 red on cyan sF1
scrput 12 10 bri cyan on black - Mastermind
scrput 12 43 red on cyan sF2
scrput 12 48 bri cyan on black -
scrput 14 5 red on cyan sF3
scrput 14 10 bri cyan on black -
scrput 14 43 red on cyan sF4
scrput 14 48 bri cyan on black -
scrput 16 5 red on cyan sF5
scrput 16 10 bri cyan on black -
scrput 16 43 red on cyan sF6
scrput 16 48 bri cyan on black -
scrput 18 5 red on cyan sF7
scrput 18 10 bri cyan on black -
scrput 18 43 red on cyan sF8
scrput 18 48 bri cyan on black -
RETURN
---
■ OLX 2.2 ■ Live to excess, moderation is for monks
■ KMail 2.92e NETWORK East
PCRelay:NETEAST -> #132 RelayNet (tm)
------------------------------------------------------------------------
Echo Flag : Y Permanent: N Export: N Personal Read: N
BBS: ASTRIX Conference: 4DOS Imported: 5/21/1992
To: BRAD OWEN Num: 12571 Date: 5/12/1992
From: DENNIS MCCUNNEY Re: 0 Time: 10:13 pm
Subj: BTM QUESTION Prvt: N Read: N
BO> Question for any 4DOS batch file gurus. I am trying to get a file
BO> containing the output from a "dir" command. The "dir" command I am using
BO> is:
BO> dir /b /f /s > dir.dat
BO> First I go to the root of the current drive so I get a list of all the
BO> directories. I then use this in a %@select command to create a scrollable
BO> pick-list. The question is this. I want to create the dir.dat file so that
BO> it will begin with "A:" and "B:", and then do a "dir" command of ALL the
BO> available drives. For example, the list should look something like this:
What you have is almost right. You need to add one more parameter
to dir: "/ad". The /a parm matches a particular file attribute, so "/ad"
looks specifically for directories. On my machine, the above run from \
produces (truncated for space reasons) :
c:\BIN
c:\DEV
c:\DGN
c:\ETC
c:\LIB
c:\MNT
c:\SPOOL
c:\TMP
c:\USR
c:\SPOOL\MAIL
c:\SPOOL\MQUEUE
c:\SPOOL\RQUEUE
c:\USR\ADM
c:\USR\BATCH
c:\USR\BIN
c:\USR\BOXER
.
.
.
etc.
To expand it to all drives on your system, try it as:
for %%drive in (a: b: c: d: e: f: g:) do dir /b /f /s /ad >> dir.dat
placing whatever drives letters are appropriate as the target of the for
loop.
You might wish to look into Keith Ledbetter's "Led's change
Directory" utility, which performs a similar function. Run LCD with the
/scan parameter, and it buids a database of all directories on all
drives in your system in the root directory of your boot drive. Type
LCD alone and it returns the current drive\directory, ala COMMAND.COM.
Give it a wildcard, like "*", and it produces a scrollable pick-list,
like this:
╒═[■]═════════════════════════════════╡ Led's Change Directory v4.0b ╞╤═╕
│ c:\ │ │
│ c:\bin │█│
│ c:\dev │░│
│ c:\dgn │░│
│ c:\etc │░│
│ c:\lib │░│
│ c:\mnt │░│
│ c:\spool │░│
│ c:\spool\mail │░│
├─────────────────────────────────────────────────────────────────────┴─┤
│ Speed search: ■ Arrow keys to move ■ Enter to accept │
├───────────────────────────────────────────────────────────────────────┤
Move to a directory on the list, press enter, and LCD will change to
that directory. LCD is mouse aware, takes partial wild-cards, does
speed-searches, and more.
I have LCD aliased as follows:
CD=lcd
LCD=pd^iff "%1" eq "" then^*lcd ^elif "%@substr[%1,3,-4]" eq "scan" then^
*lcd %1^else^*lcd %& /m^end
The current version of LCD is LCD40B.ZIP.
PCRelay:RUNNINGB -> #3 RelayNet (tm)
4.11 Running Board 2126541349/DS/2125191791/HST/
PCRelay:DCINFO -> #16 MetroLink International Network
4.10 DC Info Exchange MetroLink International Hub
------------------------------------------------------------------------
Echo Flag : Y Permanent: N Export: N Personal Read: N
BBS: ASTRIX Conference: 4DOS Imported: 5/21/1992
To: DENNIS MCCUNNEY Num: 12527 Date: 5/08/1992
From: KINLEY BRAUER Re: 0 Time: 6:41 am
Subj: CAN 4DOS DO IT? Prvt: N Read: N
DM>>KB> OK, then how about using a dir to create a filelist of only new files
DM>>KB> across all subdirectories to then be PKZIPed. And if in the process I
DM>>KB> could exclude some files, even better.
DM>> Something like this might do it (untested, but will give you the
DM>>idea):
DM>> echo off
DM>> pushd \
DM>> global for %%file in (*.*) do (
DM>> except (%1) if "% filedate[%file]=="%_date" echo % name[%file]
DM>> >>%temp\ziplist
DM>> )
DM>> pkzip -a -ex newfiles %temp\ziplist.txt
DM>> popd
Looks good. I'll work with it over the weekend--it might just do what
I'm after (and replace a much bigger batch file that I've been using).
Thanks very much!
---
■ OLX 2.2 ■ #3620 ■ Minneapolis, MN
PCRelay:BYTELINE -> #365 RelayNet (tm)
4.11 The ByteLine! ■ Mpls, MN ■ 612-931-0275/DS
------------------------------------------------------------------------
Echo Flag : Y Permanent: N Export: N Personal Read: N
BBS: ASTRIX Conference: 4DOS Imported: 5/21/1992
To: ERWIN SCHMERLING Num: 12616 Date: 5/16/1992
From: REX CONN Re: 12149 Time: 9:32 am
Subj: WIN && 4DOS == PROBLEMS Prvt: N Read: N
-> Maybe you can help explain this puzzle. I have a "clean" boot disk
-> for defragging, backing up, etc. Despite the fact that I have
->
-> set comspec=c:\command.com
->
-> the system still asks me to put in disk A: if I try to do anything
-> that requires a command processor reload.
Congratulations, you've discovered a COMMAND.COM, ahhhh, "feature"!
COMMAND.COM keeps a static string in its resident portion which
specifies where it loaded from originally; it will always reload from
the same place regardless of what you say in COMSPEC. The only ways
around it is to load a _second_ copy from C:, or change your SHELL
statement to specify loading the original copy from C: (assuming the
drive hasn't been blown).
- Rex
PCRelay:DCINFO -> #16 MetroLink International Network
4.10 DC Info Exchange MetroLink International Hub
------------------------------------------------------------------------
Echo Flag : Permanent: N Export: N Personal Read: N
BBS: ESCMAIL Conference: 4dos(ECHO) Imported: 5/21/1992
To: ALEX MACPHEE Num: 460 Date: 5/17/1992
From: WOLFGANG RIEDEL Re: Time: 11:01 pm
Subj: Listing directories e Prvt: N Read: N
Hi Alex,
Thursday May 14 1992, Alex Macphee writes to All:
AM> I'm trying to create an alias that will produce a list of directories
only
AM> that can be redirected to a list file, so that directories in the list
AM> file(s) can be backed up/archived. So far I have
try this.
It works fine on my system and is based on REFRESH.BTM from the auto CD batch
file.
But you have to set TEMP in your AUTOEXEC.BAT first.
SET TEMP=J:\TEMP\
*--------------------------------------------------------
setlocal
*set _f=%TEMP%cdd.ini
*echo ` `
iff exist %_f then
*echo %@upper[%0] will add to existing file "%_f".
else
*echo %@upper[%0] will create directory file "%_f".
endiff
*set i=%1
if "%i"=="" *set i=%@char[%@ascii[%@upper[%_boot]]]
:scan
iff exist %i:\nul. then
*echo
*echo ----------------------------------------------
*echo
*echo Processing drive %@upper[%i]
*echo
*cdd %i:\^global/iq (*echo %_cwd>>! %_f^*echo %_cwd)
else
*echo
*echo ----------------------------------------------
*echo
*echo Invalid drive: %i
*echo assume LASTDRIVE=%i found
goto _ende
endiff
*set i=%@char[%@eval[%@ascii[%i]+1]]
if %i le %@upper[%_lastdisk] .and. "%1"=="" goto scan
:_ende
copy %temp%cdd.ini c:\4dos
*--------------------------------------------------------------------
Tschau and happy hagging,
\ /
\/\/olfgang
--- GoldED 2.40
* Origin: -=> K&R <=- Point of Andromeda-BBS Erlangen, FRG (2:246/91.2)
------------------------------------------------------------------------
Echo Flag : Y Permanent: N Export: N Personal Read: N
BBS: ASTRIX Conference: 4DOS Imported: 5/23/1992
To: JAMES MORRIS Num: 12756 Date: 5/19/1992
From: GREG SMITH Re: 0 Time: 6:11 pm
Subj: 4DOS & DR-DOS PASSWORDS Prvt: N Read: N
JM>One reason for being able to run COMMAND.COM under 4DOS is in order to
JM>gain full access to a password protected file. Another is the fact that
True. The global passwords have been sufficient for me. Here's a
couple aliases I use to "log in & out":
login=password /G:* && prompt ^e[1;32mShell #$z on $D,^e[1;33;44m logged
in ^e[1;36;40m$_$P$G^e[0;37m
logout=password /NG^prompt ^e[1;32mShell #$z on $D^e[1;36m$_$P$G^e[0;37m
JM>some program out there may invoke COMMAND.COM instead of 4DOS.COM when a
JM>"Shell to DOS" is done within the program. Personally, any program I
JM>write with a "Shell to DOS" feature uses the COMPSEC environment
Every program that I've found which relies on COMMAND.COM (not many)
I've just deleted and done without.
Greg
* SLMR 2.1a * Itsdifficulttobeverycreativewithonlyfiftysevencharacters.
PCRelay:BOREALIS -> #914 RelayNet (tm)
4.11 Borealis Online Computer Store (303)750-7136
PCRelay:DCINFO -> #16 MetroLink International Network
4.10 DC Info Exchange MetroLink International Hub
------------------------------------------------------------------------
Echo Flag : Y Permanent: N Export: N Personal Read: N
BBS: ASTRIX Conference: 4DOS Imported: 5/23/1992
To: DAVE LEMIRE Num: 12764 Date: 5/21/1992
From: JIM LYNCH Re: 0 Time: 2:17 am
Subj: 4DOS DEMO 2/2 Prvt: N Read: N
DL> :MENU_DISPLAY
DL> cls
DL> drawbox 1 1 23 78 2 bri bla on black fil black
DL> for %%a in (3 5 7 9 11 13 15 17 19 21 ) drawhline %%a 1 78 1 bri bla o
DL> drawvline 1 39 21 1 bri bla on black
DL> scrput 0 24 bright yellow on red * * * * GAMES MENU * * * *
DL> scrput 2 5 red on cyan F1
DL> scrput 2 9 bri cyan on black -- Railroad Tycoon
DL> scrput 2 43 red on cyan F2
DL> scrput 2 47 bri cyan on black -- EGA Backgammon
DL> scrput 4 5 red on cyan F3
Another way to make a menu is to create a file which has the
menu prompts, one per line, then use (AT)select[] to display the
file. Makes it a whole lot easier when you want to change the
menu. Plus, you can start nesting the menus very easily.
For example you could create a file called GAMEMENU.DAT that
looks like:
RailRoad Tycoon
Backgammon
ETC
then your menu.btm has GOTO labels matching the prompts in the
GAMEMENU.DAT file:
setlocal
:GAMEMENU
set choice=%@word[0,%(AT)select[GAMEMENU.DAT,8,25,19,55,* GAME MENU *]]
if %choice!==! goto end
goto %choice
:RAILROAD
stuff to start railroad gane
goto GAMEMENU
:BACKGAMMON
stuff to start backgammon game
goto GAMEMENU
:ETC
whatever
goto GAMEMENU
---
■ MegaMail 2.1ß #0:
PCRelay:DCINFO -> #16 MetroLink International Network
4.10 DC Info Exchange MetroLink International Hub
------------------------------------------------------------------------
Echo Flag : Y Permanent: N Export: N Personal Read: N
BBS: ASTRIX Conference: 4DOS Imported: 5/25/1992
To: GEORGE BELL Num: 12780 Date: 5/20/1992
From: IAN HUNTER Re: 0 Time: 11:17 am
Subj: CAN 4DOS DO IT? Prvt: N Read: N
From: GEORGE BELL To: ALL USERS
Subj: CAN 4DOS DO IT? Conf: (21) 4DOS
---------------------------------------------------------------------------
GB>I would like to be able to use LHA and compress, without doing a sep-
GB>rate application for each of my some 200 TType fonts, not in one large
GB>file but a file for each font and save the font name. ie., TTXYZ.TTF to
GB>TTXYZ.LZH. Any ideals for a btm file.
One line:
for %f in (*.ttf) do lha m %@name[%f] %f
this says: (or should say <g>)
for each file matching *.ttf do
compress the file with lha and delete the original
(compress to a file with the same NAME (not extension) as the original)
Once I used the command
for %f in (*.pas) do pkzip -m %@name[%f] %@name[%f].*
I was zipping up source code files that have the format
filename.pas
filename.icd
filename.inc
filename.obj
filename.inX where X is from 1 to 5 or so
and it did 'em all with one command. Yay 4Dos!
Ian
---
■ SLMR 2.1a ■ It's my parity and I'll baud if I want to!
---
SFUTI 3.16 » ßETA Busters - On The Bleeding Edge of Technology!
PCRelay:PARADIGM -> #241 RelayNet (tm)
------------------------------------------------------------------------
Echo Flag : Permanent: N Export: N Personal Read: N
BBS: ESCMAIL Conference: 4dos(ECHO) Imported: 5/25/1992
To: MURRAY WELLS Num: 500 Date: 5/22/1992
From: WILLIAM HUGHES Re: Time: 2:57 pm
Subj: 4dos Coloured director Prvt: N Read: N
MW> With laptop monitors, I have found, the ability to make important
>file extensions brighter than the rest of a directory listing can be
>quite useful...
MW> What I would like to see is a directory command that produced a *.*
>listing with a command-line-specified highlighted extension...
MW> IE: Dir /bat would produce a *.* directory listing with all *.bat
>files displayed in Bright White (or whatever)...
alias `HLDIR set colordir=%1:bright white ^ dir %& ^ set colordir='
MW> Actually, now that I've mentioned it, I wonder if I could dummy up
>something with an alias?
heh heh
* SLMR 2.1a *
--- MsgToss 2.0b (r)
* Origin: Nul 512-615-NUL1 HST/V32b,615-NUL2, NUL3, 1.2Gig (1:387/255)
------------------------------------------------------------------------
Echo Flag : Permanent: N Export: N Personal Read: N
BBS: ESCMAIL Conference: 4dos(ECHO) Imported: 5/25/1992
To: ALL Num: 520 Date: 5/22/1992
From: OLIVER SCHWABEDISSEN Re: Time: 10:20 pm
Subj: Synchronizing 4OS2 and 4D Prvt: N Read: N
i have a big problem to call a 4DOS batch file from an 4OS2 (v0.95) session
when the 4OS2 session is running in the background.
Example: I have these two batch files
OS2TEST.CMD:
---------------------------------- cut here ---------------------------------
@echo off
echo This is an OS/2 batch file. Let's sleep for 10 seconds...
delay 10
echo Now starting a DOS batch file...
call e:\tmp\dostest.bat
echo Back from DOS, wait another 5 seconds...
delay 5
echo That's it!
---------------------------------- cut here ---------------------------------
DOSTEST.BAT:
---------------------------------- cut here ---------------------------------
@echo off
echo This is a DOS batch file... Let's wait for 20 long seconds...
delay 20
echo and now back to OS/2...
---------------------------------- cut here ---------------------------------
Now when I start OS2TEST from a 4OS2 foreground session it sleeps 10 seconds,
starts the 4DOS batch and when this is finished it returns to the 4OS2 batch,
sleeping another 5 seconds and then exits. Fine. Just as I expected.
But: when I start OS2TEST and then iconize the 4OS2 session immediately it
still starts the DOSTEST batch file _but_doesn't_wait_ for it to finish!
Instead I'm getting a msg in my 4OS2 window saying:
---------------------->>>>>>> schnipp schnapp <<<<<<<------------------------
The Session Manager cannot start the process in
the foreground. It will be started in the background.
"E:\TMP\DOSTEST.BAT"
Back from DOS, wait another 5 seconds...
That's it!
---------------------->>>>>>> schnipp schnapp <<<<<<<------------------------
This is a very big problem for me since I still have some 4DOS batches for my
BBS that have to be finished before the calling 4OS2 batch is allowed to
continue! And my mailer and BBS are ususally running in background... How can
I synchronize both batch files? Did I miss something in the documentation? Is
this a bug in 4OS2?
Oliver, the confused...
--- GoldED 2.40+/Reg.-No. #0015
* Origin: Tact is the art of making a point without making an enemy
(2:248/19)
------------------------------------------------------------------------
Echo Flag : Permanent: N Export: N Personal Read: N
BBS: ESCMAIL Conference: 4dos(ECHO) Imported: 5/26/1992
To: CARLOS LEGASPI Num: 544 Date: 5/24/1992
From: DAVE MUNHOLLON Re: Time: 3:51 pm
Subj: 4dos Prvt: N Read: N
Hello Carlos!
Thursday May 21 1992, Carlos Legaspi writes to All:
CL> Hi All!
CL> are there any commands that you can use to run a program say every
MONDAY
CL> of the week or every first monday of each month?
CL> i can't find any day of the week and month that i can use in 4dos..i
have
CL> seen the %@date check only..
Yes, there is, it is %_dow (returns sat sun .... for today). Using %_dow,
%_date (notice--- it is an '_' not a '@') and %@substr[string,start
character,number of characters] you can. It would look like this:
if "%_dow"="mon" .and. "%@substr[%_date,3,2]"="01" echo Pfft!
| | | |
Check Day
| | |
Only true if both are true
| |
start at 3rdh character in string [date,
in format 00-00-00] and return the next |
2 characters
|
Do whatever -----------------------------------------
Your date structure may be different, so you'd have to change
%@substr[%_date,0,2].
Hope this helps.
-=*Dave
--- GoldED 2.40
* Origin: Jackpot!! I've got 4DOS (719) 570-6118 (1:128/86)
------------------------------------------------------------------------
Echo Flag : Permanent: N Export: N Personal Read: N
BBS: ESCMAIL Conference: 4dos(ECHO) Imported: 5/26/1992
To: MURRAY WELLS Num: 547 Date: 5/24/1992
From: STEN DRESCHER Re: Time: 11:25 am
Subj: 4START.BTM and 4DOS.O Prvt: N Read: N
MW> Surely, but as I've said in previous messages, I would
MW> find it *very* useful if 4START was split into seperate
MW> sections, much like the 4DOS.INI file, so that commands
MW> could be specified to effect global shells, primary shells
MW> or secondary shells where such distinctions might be required...
Well, how about this:
rem global shells
.
.
.
iff %_shell eq 0 then
rem primary shell
.
.
.
else
rem secondary shells
.
.
.
endiff
rem more global shell stuff
.
.
.
It's not quite as seamless as what you were suggesting, but it's much
more flexible. I do this, because I use a different prompt i secondary
shells as opposed to primary shells, and I set it in my 4START.BTM file.
-Sten
--- EZPoint V2.2
* Origin: NUL.Ten Forward, San Antonio, TX (1:387/255.104)
------------------------------------------------------------------------
Echo Flag : Permanent: N Export: N Personal Read: N
BBS: ESCMAIL Conference: 4dos(ECHO) Imported: 5/26/1992
To: ALL Num: 529 Date: 5/21/1992
From: WIM JANSSEN Re: Time: 10:37 am
Subj: Toggle Keys Prvt: N Read: N
Yesterday I made some very usefull aliasses.. I will call them
'4Dos Key Toggles' Because it's not so important what they do,
but HOW... You can achieve the same result with 2 different
(key)alias-files, but the nice thing about this solution is that
it's all possible with 1 alias file!
Key toggling is mostly used in programs to switch from one state
to another e.g. Print ON/OFF. With this solution you cannot switch
on your printer, but you can do a lot off other 'switching' and all
this with ONE Key!
I haven't seen this solution before. So that's why I am writing this
message. Luckily for us (2:512) in Holland 4Dos is in the air again..
so hopefully a lot off 4Dos Users will read this....
Here is an example of 1 'key-toggle'. This F2 key calls a Btm named
'TSR' which can kill all of my TSR's in memory, but it also can restore
the original situation as it was at 'bootup time'.
My original alias list is called 'Org.Als' The alias to read an alias
list is called 'RA' When I want to read the alias list 'Org.Als' I call
the alias 'RA Org'. That's a little about this important alias...
The alias is as follows:
**** Edit Next lines to 1 line!
RA=Pushd C:\Sys\4Dos^Iff Exist %1.Als Then Alias /R %1.Als^Else
Echo File %1.Als Not Found!^EndIff^Popd
As you will see you HAVE to change this alias to suit your own needs!
If you have already such an alias, you can use that one of course.
Well now the mentioned 'key toggle alias':
**** Edit Next lines to 1 line!
@F2=@Alias @F2=`@RA Org^C:\Sys\4Dos\TSR
Install(Ctrl-X)(Ctrl-X)r`^C:\Sys\4Dos\TSR Kill(Ctrl-X)r
Maybe it's all a bit clearer when I change it to a 'Logging Toggle':
@F2=@Alias @F2=`@RA Org^Log OffCtrl-X)(Ctrl-X)r`^Log On(Ctrl-X)r
As long as, your used alias list is not too long, this 'key toggle
alias' works perfect!!
Succes....
Note: (Ctrl-X) is the default 4Dos escape 'arrow-up' character
Groetjes, .
\\'I,\\
--- FM 2.02
* Origin: Point of "The Ultimate", 31-53-303902/328506 (2:512/32.9)
------------------------------------------------------------------------
Echo Flag : N Permanent: N Export: N Personal Read: N
BBS: ASTRIX Conference: 4DOS Imported: 5/30/1992
To: DAVID KUNZ Num: 12883 Date: 5/28/1992
From: DON BEILFUSS Re: 12863 Time: 12:12 pm
Subj: 4DOS AND OS/2 Prvt: N Read: N
Dave,
You need to make 4DOS the command processor in your OS/2 CONFIG.SYS file
and then you won't have to make it the shell in the DOS Settings for
each task. You'll also get 4Dos as the default whenever you run a DOS
task under OS/2.
PROTSHELL=C:\OS2\PMSHELL.EXE {leave as is}
SET OS2_SHELL=C:\4OS2\4OS2.EXE {change to 4OS2}
SET RUNWORKPLACE=C:\OS2\PMSHELL.EXE {leave as is}
SET COMSPEC=C:\4OS2\4OS2.EXE (change to 4OS2}
rem SHELL=C:\OS2\MDOS\COMMAND.COM C:\OS2\MDOS /P {commented out}
SHELL=C:\4Dos4\4Dos.Com C:\4Dos4 {add this line}
Good luck,
Don
------------------------------------------------------------------------
Echo Flag : Y Permanent: N Export: N Personal Read: N
BBS: ASTRIX Conference: 4DOS Imported: 5/30/1992
To: DENNIS MCCUNNEY Num: 12879 Date: 5/26/1992
From: DOUG MACLEAN Re: 0 Time: 7:26 am
Subj: Unix utilities meet 4DOS Prvt: N Read: N
Hi Dennis,
Since I think I remember that you are a "awk" user I thought I would
share a trivial but useful little combination of awk, touch, and
4DOS. Recently, I thought it would be nice to convert some old zip
files to arj to save some floppy space. The problem was I would lose
the nifty download information comments that robocomm supplies.
Also, the origianl timestamp is lost when robo adds the comment.
Here is my new fixfile.bat to preserve the time stamp.
touch -d%@filedate[%1] -t%@filetime[%1] temp
pkzip -z -o %1 <comment.txt
touch -d%@filedate[temp] -t%@filetime[temp] %1
del temp
Next, I wanted to use rearj to convert the file to arj format saving
the comment. For this I use convert.btm
setlocal
set ARJ_SW=-we:\ -jm -i1
pkunzip -v %1 >temp
awk comment.awk temp>comment
rearj /a* /lconvert.log /v %1
if %@lines[comment] == -1 goto done
arj y -s1 -zcomment %@name[%1].arj
echo %1: Comment transfered >> convert.log
:done
del temp comment
endlocal
Finally, here is the awk script used in line four:
{
if (NR > 6)
{
if (NR == 7) if ($0 !~ /Robocomm/) exit
print $0
if ($0 ~ /════════════════════════════════════════════/) exit
}
}
This script will skip the beginning pkzip banner and all file
listings.
Regards,
Doug
└─┐
PCRelay:MOONDOG -> #35 RelayNet (tm)
4.11 HUBMOON-MoonDog BBS, Brooklyn,NY 718 692-2498
------------------------------------------------------------------------
Echo Flag : Permanent: N Export: N Personal Read: N
BBS: ESCMAIL Conference: 4dos(ECHO) Imported: 5/30/1992
To: YOUSUF KHAN Num: 617 Date: 5/21/1992
From: FURLAN PRIMUS Re: Time: 7:06 am
Subj: 4dos new feature Prvt: N Read: N
Hello Yousuf,
languaging in a message on <May 19 14:27>, in 4DOS, you wrote:
YK> What exactly is a history "squeeze"?
it takes all of the present history commands, deletes duplicates and reloads
the history stack w/o the dupes. it MAY even sort them, i don't recall at
this point. you could use a BTM file to do something similar (it may or may
not be faster):
_ _ _ O_/_ _C_U_T_ _H_E_R_E_ _ _ _ _ _ _
O \
:: pruning the history list of dupes ::
history > temp.in
sortf temp.in unique.in
awk "$0 != prev { prev = $0; print }" < unique.in > unique.out
history /f
history /r unique.out
del temp.in unique.in unique.out /q
_ _ _ O_/_ _C_U_T_ _H_E_R_E_ _ _ _ _ _ _
O \
fl
--- msgedsq 2.1
* Origin: Compassion is the basis of all morality. (1:141/590)
------------------------------------------------------------------------
Echo Flag : Permanent: N Export: N Personal Read: N
BBS: ESCMAIL Conference: 4dos(ECHO) Imported: 5/30/1992
To: BOB CAMPBELL Num: 567 Date: 5/17/1992
From: GARTH KIDD Re: Time: 7:09 am
Subj: load and call Prvt: N Read: N
BC> does anyone have a .BAT routine that will exectute 4dos.com and
BC> then without further intervention call a .BTM from the shell?
Why not have the batch file call itself? :-)
@echo off
if not "%_4ver"=="" goto doinstall
set blergh=
4dos /c %0
if not "%blergh%"=="" goto xit
[For some reason or other, 4DOS couldn't be found or
somehow failed to run your batch file, so the res
environment variable is still blank. Handle it how-
ever you see fit. For example...]
echo 4dos.com not found!
goto xit
:do install
[here's where you whack all your 4DOS-specific stuff]
set blergh=[something]
exit
:xit
exit
One thing you should check is whether distributing copies of 4dos.com
willy-nilly around the place with your product is really allowed. Converting
your batch file to an executable, either with one of the popular batch-file
compilers or by re-coding it in some other language entirely, might be a good
idea.
Now, if there was a batch-file compiler by the same people as 4DOS, things
would be wonderful! :-)
garth.
---
* Origin: deadly bloody serious v1.3 (3:680/828)
------------------------------------------------------------------------
Echo Flag : Permanent: N Export: N Personal Read: N
BBS: ESCMAIL Conference: 4dos(ECHO) Imported: 5/30/1992
To: DARRYL GREGORASH Num: 624 Date: 5/26/1992
From: TRAVIS KIRTON Re: Time: 11:50 pm
Subj: Possible bug in 4DOS 4.0 Prvt: N Read: N
Alright...here is my file...
@echo off
cls
echo IMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM;
echo : ViruCheck(R) DOS version 1.20.01 :
echo : (C) 1991,92 RKConsulting
IMMMMMMMJMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM;
echo : All Rights Reserved. : This program is freeware, but any
donations :
echo HMMMMMMMMMMMMMMMMMMMMMMMMMMM9 would be appreciated. Send any donations
to: :
echo :
:
echo IMMMMMMMMMMMMMMMMMMMMMMMMMMMJMMMMMM; Travis Kirton
echo : For use with: : C/O RKConsulting
:
echo : MS- or DR-DOS using the : P.O. Box 7461
:
echo : Standard Command Interpreter : The Woodlands, Texas 77387-7461
:
echo :
LMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM<
echo HMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM<
echo ................................................................
pause
cls
if not "%2x"=="x" goto cont1c
if not exist vchkcnf.bat goto cont1a
:cont1d
call vchkcnf.bat
goto cont1b
:cont1c
set data=%2
goto cont1b
:cont1a
vchkset
goto cont1d
pause Press any key to begin.
:cont1b
cls
echo Attempting to uncompress %1 - (Attempt #1)
echo Using PKUnzip [.ZIP format]
echo ================================================================
set compress=PKUnZip
%compress% %1 vctemp >nul:
if errorlevel 1 goto arc
if errorlevel 0 goto success
:arc
cls
echo %compress% unsuccessful
echo Attempting to uncompress %1 - (Attempt #2)
echo Using PKUnpack [.ARC format]
echo ================================================================
set compress=PKUnPak
%compress% -x %1 vctemp >nul:
if errorlevel 1 goto lzharc
if errorlevel 0 goto success
:lzharc
cls
echo %compress% unsuccessful!
echo Attempting to uncompress %1 - (Attempt #3)
echo Using LZH Archive Program [.LZH format]
echo ================================================================
set compress=LHArc
%compress% e %1 c:\telemate\vctemp >nul:
if errorlevel 1 goto arj
if errorlevel 0 goto success
:arj
cls
echo %compress% unsuccessful!
echo Attempting to uncompress %1 - (Attempt #4)
echo Using high-compression Archive Program [.ARJ format]
echo ================================================================
set compress=Unarj
cd\telemate\vctemp
%compress% e %1 >nul:
if errorlevel 1 goto zoo
if errorlevel 0 cd\telemate
goto success
:zoo
cd\telemate\download
cls
echo %compress% unsuccessful!
echo Attempting to uncompress %1 - (Attempt #5)
echo Using ZOO Archive Program [.ZOO format]
echo ================================================================
set compress=Zoo
cd\telemate
%compress% -extract %1 *.*>nul:
if errorlevel 1 goto self
if errorlevel 0 cd\telemate
goto success
:self
cls
cd\telemate
echo %compress% unsuccessful!
echo Attempting to uncompress %1 - (Last Attempt)
echo Using Self-Extraction Method (.EXE compressed format)
echo ================================================================
set compress=Self-Extraction
echo Currently using Self-Extraction technique
cd \telemate\vctemp
%1 >nul:
cd ..
if errorlevel 1 goto nocompress
if errorlevel 0 goto success
:nocompress
cls
echo Self-extraction unsuccessful!
echo ================================================================
echo \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
echo [ Note: Your selected compressed file could not be [
echo [ uncompressed. It does not match current compression [
echo [ techniques. Virus Check will be aborted. [
echo ________________________________________________________________
pause
goto end
:success
cls
echo %compress% SUCCESSFUL!!
echo ................................................................
echo Checking current file for viruses
echo ................................................................
scan vctemp\*.* /a /nomem
if errorlevel 1 goto virus
if errorlevel 0 goto move
:virus
cls
echo \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
echo [ [
echo [ IMMMM; [
echo [ I<\\\\H; [
echo [ I<^____]H; [
echo [ :^[STOP[]: Warning: [
echo [ H;^\\\\]I< [
echo [ H;____I< Your compressed file has a virus contained inside [
echo [ HMMMM< the compression that may cause serious damage to [
echo [ your disks. Deleting the file is crucial to [
echo [ eliminating the virus. [
echo [ [
echo [ Note: McAfree's Clean-Up may also eliminate the virus problem [
echo [ [
echo ___________________________________________________________________
pause Press CTRL-C to use Clean-Up or any key to delete file.
cls
echo ................................................................
echo Performing ViruScan again with virus elimination option...
echo ................................................................
scan vctemp\*.* /a /nomem /d >nul:
echo ViruScan completed!
goto end
:move
cls
echo \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
echo [ [
echo [ ViruScan indicates no apparent viruses in programs. [
echo [ [
echo ________________________________________________________________
echo .................................................................
echo IMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM;
echo : For your convienence, the uncompressed files are now being moved :
echo : to a subdirectory for your use. :
echo HMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM<
echo .................................................................
echo Y>y.txt
cls
echo ~ Did not find the search program.
echo ~ Moving all uncompressed files of the compressed file:
echo %1
copy vctemp %data% >nul:
:cont1
del vctemp <y.txt >nul:
del y.txt <y.txt >nul:
cls
echo ~ Move completed!
echo .................................................................
echo ~ Removing compressed file %1.
echo ~ Press CTRL-BREAK to abort or
pause
del %3 >nul:
cls
echo ~ File(s) deleted!
echo .................................................................
:end
echo ~ Returning to parent program....
Sorry...it is rather long. The problem occurs near the
u`yWZLRsH'5E{p>ql&%];63i?;;CyQ96
-Wyq[@]Ai'5}IO p
N.K+BUIP:}*5E2x(SSTuSJ=q/0\p
hW/`$H,
<-"[wB0*:<|2uG3-.1<D]/e@<QH>CO
end.
LAter,
Travis kIrton
--- Maximus/2 2.01wb
* Origin: COMM Port One HST/V.32bis (713) 980-9671 (1:106/2000)
------------------------------------------------------------------------
Echo Flag : Permanent: N Export: N Personal Read: N
BBS: ESCMAIL Conference: 4dos(ECHO) Imported: 5/30/1992
To: TRAVIS KIRTON Num: 660 Date: 5/27/1992
From: DARRYL GREGORASH Re: Time: 6:02 pm
Subj: Possible bug in 4DOS 4.0 Prvt: N Read: N
Argh! This is what arrived here just when you got to the important part:
> Sorry...it is rather long. The problem occurs near the
> u`yWZLRsH'5E{p>ql&%];63i?;;CyQ96
> -Wyq[@]Ai'5}IO p
> N.K+BUIP:}*5E2x(SSTuSJ=q/0\p
> hW/`$H,
> <-"[wB0*:<|2uG3-.1<D]/e@<QH>CO
> end.
> if not "%2x"=="x" goto cont1c
OK, this sort of thing is going to be a problem in 4DOS; DOS will take that
%2x and interpret it the way you wish. 4DOS has no way of knowing if you
mean command parameter 2 followed by character x, or environment variable 2x.
However, no fear; this works as you want with both command interpreteres:
if not "%2" == "" goto cont1c
If the problem is somewhere else, sorry -- there is no documentation in your
batch, so it would take me forever to figure it out.
--- GEcho 1.00/beta
* Origin: if not (%@eval[2+2]) == (4) echo !@#@#$)& (1:140/86)
------------------------------------------------------------------------
Echo Flag : Permanent: N Export: N Personal Read: N
BBS: ESCMAIL Conference: 4dos(ECHO) Imported: 6/01/1992
To: FURLAN PRIMUS Num: 708 Date: 5/29/1992
From: MAYNARD HOGG Re: Time: 12:54 pm
Subj: 4Dos New Feature Prvt: N Read: N
YK> What exactly is a history "squeeze"?
FP>history > temp.in
>sortf temp.in unique.in
>awk "$0 != prev { prev = $0; print }" < unique.in > unique.out
Much as I love AWK, there's a faster way:
history |sort |uniq >unique.out
^^^^Even the half-assed DOS version works here.
-- SPEED 1.10 #1086:
--- GEcho 1.00/beta
* Origin: SuperBBS Support/Sales/Beta site * Avxia_bbs Line 1 (6:730/9)
------------------------------------------------------------------------
Echo Flag : Y Permanent: N Export: N Personal Read: N
BBS: ASTRIX Conference: 4DOS Imported: 6/03/1992
To: DON BEILFUSS Num: 12917 Date: 5/29/1992
From: DAVID KUNZ Re: 12150 Time: 4:27 pm
Subj: 4DOS AND OS/2 Prvt: N Read: N
DB║ You need to make 4DOS the command processor in your OS/2 CONFIG.SYS fil
DB║ and then you won't have to make it the shell in the DOS Settings for
DB║ each task. You'll also get 4Dos as the default whenever you run a DOS
DB║ task under OS/2.
DB║
DB║ PROTSHELL=C:\OS2\PMSHELL.EXE {leave as is}
DB║ SET OS2_SHELL=C:\4OS2\4OS2.EXE {change to 4OS2}
DB║ SET RUNWORKPLACE=C:\OS2\PMSHELL.EXE {leave as is}
DB║ SET COMSPEC=C:\4OS2\4OS2.EXE (change to 4OS2}
DB║ rem SHELL=C:\OS2\MDOS\COMMAND.COM C:\OS2\MDOS /P {commented out}
DB║ SHELL=C:\4Dos4\4Dos.Com C:\4Dos4 {add this line}
This is almost exactly what I did! Except that my 4DOS line looks
like this: "shell=c:\4dos\4dos.com c:\4dos /p /e:1024". The problem is
that if I make 4DOS the primary DOS shell, I can't start Windoze
programs from the desktop. Have you tried this? When I double click on the
icon, I get the clock for a few seconds then it goes away but nothing
starts. Also, some Windoze programs started from 4OS2 lock the system
when they exit. When I use IBM's COMMAND.COM, I get the windoze
program loaded from the desktop and all is well when they exit!
Thanks for the reply!
David Kunz
---
■ MegaMail : I Still miss my ex-wife.....BUT, My aim is improving!
PCRelay:WTHREEJP -> #75 RelayNet (tm)
PCRelay:DCINFO -> #16 MetroLink International Network
4.10 DC Info Exchange MetroLink International Hub
------------------------------------------------------------------------
Echo Flag : Y Permanent: N Export: N Personal Read: N
BBS: ASTRIX Conference: 4DOS Imported: 6/03/1992
To: DAVID KUNZ Num: 12928 Date: 5/31/1992
From: REX CONN Re: 12150 Time: 9:26 am
Subj: 4DOS AND OS/2 Prvt: N Read: N
4DOS 4.01 (to be released this week) supports all of the OS/2 features,
quirks, and back doors. <g>
In the meantime, make sure that the \OS2\MDOS\WINOS2 directory is in
your PATH in AUTOEXEC.BAT. 4DOS needs the path because OS/2 starts a
Windows program with a command line that looks like:
4dos /c winos2 name
- Rex
PCRelay:DCINFO -> #16 MetroLink International Network
4.10 DC Info Exchange MetroLink International Hub
------------------------------------------------------------------------
Echo Flag : Y Permanent: N Export: N Personal Read: N
BBS: ASTRIX Conference: 4DOS Imported: 6/03/1992
To: JOHN DURSO Num: 12925 Date: 5/30/1992
From: BRAD OWEN Re: 0 Time: 10:58 am
Subj: TIME IN BATCH Prvt: N Read: N
JD>OK, since that was so easy, I have another question. Is there a
JD>way to run a batch program. When the batch starts, it would record
JD>the time and add 1 1/2 hours to the time. then put it into the
JD>above line.
JD>Or
JD>Batch File :
JD>read time (say its 1:00AM and add 1 1/2 hours or 2:30 AM)
JD>do stuff ┌──────────────────────────────────┘
JD>do stuff │
JD>IF "%_time" GT "02:30" goto DONE
JD>do stuff
JD>:done
John, I think I have it figured out. Try this to see how it works.
@echo off
rem first start the 4DOS internal timer
timer
do stuff
do more stuff
rem now stop the timer and save the output to a file
timer > timer.dat
rem now set some variables to do some measuring
rem the variable "timevar" gets the string in timer.dat and puts
rem puts it into a variable.
set timevar=%@[timer.dat,0]
rem the variable "testvar" gets a substring of just the amount of
elapsed time in a standard time format, e.g., 01:22
set testvar=%@substr[%testvar,33,5]
rem now we check the "testvar" variable to see if it is greater than
1 1/2 hours in length.
if "%testvar" GT "1:30" goto DONE
do stuff
do more stuff
rem now we finish up by cleaning up all the variables and deleting
the timer.dat file --make sure you are in the directory where
timer.dat was created. Just use "pushd" and "popd" if you
change directories
:DONE
set timevar=
set testvar=
del timer.dat
Let me know how this works.
---
■ DeLuxe² 1.25 #444sa ■ Beat me, whip me, make me read my mail online.
PCRelay:MIDAS -> #887 RelayNet (tm)
------------------------------------------------------------------------
Echo Flag : Y Permanent: N Export: N Personal Read: N
BBS: ASTRIX Conference: 4DOS Imported: 6/04/1992
To: JOHN DURSO Num: 12959 Date: 5/30/1992
From: RICHARD AMICK Re: 0 Time: 10:27 am
Subj: TIME IN BATCH Prvt: N Read: N
JD│OK, since that was so easy, I have another question. Is there a
│way to run a batch program. When the batch starts, it would record
│the time and add 1 1/2 hours to the time. then put it into the
│above line.
Excuse my butting in, but this should work:
timer /3 on Start up built-in timer
do stuff
do more stuff
timer /3 >timer$$$.$$$ Stop timer, save output
for %i in (#timer$$$.$$$) set elapsed=%#substr[%i,10,-5]
del timer$$$.$$$
if "%elapsed" gt " 1:30" goto DONE
do still more stuff
:DONE
The #'s should be replaced with at-signs, of course. Note that the time
returned is not zero-padded, thus the leading blank in the comparison.
---
■ OLX 2·2 ■ Pretend to spank me. I'm a pseudo-masochist!
PCRelay:EDSHOME -> #780 RelayNet (tm)
PCRelay:DCINFO -> #16 MetroLink International Network
4.10 DC Info Exchange MetroLink International Hub
------------------------------------------------------------------------
Echo Flag : Permanent: N Export: N Personal Read: N
BBS: ESCMAIL Conference: 4dos(ECHO) Imported: 6/03/1992
To: CLAY ZAHROBSKY Num: 732 Date: 5/30/1992
From: DANIEL TORREY Re: Time: 4:02 pm
Subj: Btm Prvt: N Read: N
Hi, Clay -
On Wednesday May 27 1992, you wrote to Daniel Torrey:
CZ> How about sharing it with us!!!!!!!
Sure! I had no idea anyone would be interested. Here it is:
+----------------------------------------------------+
rem
rem LOGARC.BTM -- renames logfiles to reflect current day number, adds
rem them to an archive file
rem
@echo off
:start
rem save current directory
set save_dir=%_cwd
cd c:\gpt\logs
rem get day number
set day_num=%@eval[%@date[%_date] - %@date[1-1-92]]
rem create logfile names
set fdlog_name=`fdlog.`%day_num
set sqlog_name=`sqlog.`%day_num
:rename
rem rename current files, move to archive directory
rename fd.log %fdlog_name
rename sq.log %sqlog_name
move *.%day_num c:\gpt\logs\old
cd c:\gpt\logs\old
:archive
rem squash them, using ARJ (what else?)
arj a -a+ -jt+ -i1+ fdlog.arj fdlog.*
arj a -a+ -jt+ -i1+ sqlog.arj sqlog.*
del *.%day_num
:end
rem cd back to starting directory, clean up environment
cd %save_dir
unset day_num
unset fdlog_name
unset sqlog_name
unset r
+-------------------------------------------------------------+
-daniel
---
* Origin: Greenhaven Point * Burnsville, MN * (1:282/60.1)
------------------------------------------------------------------------
Echo Flag : Permanent: N Export: N Personal Read: N
BBS: ESCMAIL Conference: 4dos(ECHO) Imported: 6/03/1992
To: REX CONN Num: 720 Date: 5/30/1992
From: SAUL LEVY Re: Time: 1:27 pm
Subj: Key reading problem Prvt: N Read: N
Rex,
Can you (or anyone) help me with a problem with 4DOS? The
following code creates KEY.COM which waits for a keystroke and
returns the extended scan code as an errorlevel for ANSIKEY4.BTM
(the 4DOS version of ANSIKEY.BAT, shown lower down):
a
mov si,0080 ; see if any parameter
mov cx,[si] ; was entered on the
xor ch,ch ; command line
jcxz 115 ; no, jump to non-FK
mov ah,0 ; get a character
int 16 ; using BIOS
cmp al,0 ; is it function key?
jnz 109 ; no, so try again
mov al,ah ; use 'extended' code
jmp 119 ; goto errlev setter
mov ah,0 ; get a character
int 16 ; using BIOS
mov ah,4c ; exit with errorlevel
int 21 ; via DOS
n key.com
rcx
1d
w
q
KEY.COM works fine with COMMAND.COM, but not with 4DOS (4.0 B1)
which always returns 0010 as the errorlevel. Here is
ANSIKEY4.BTM:
@echo off
rem This is ANSIKEY.BAT
rem This won't work unless ANSI.SYS is loaded and KEY.COM is handy!
rem It will work with ALL keys EXCEPT the GRAY arrow keys,
rem GRAY Home/End, GRAY Page Up/Down, and Gray Ins/Del
set op=%prompt%
for %%a in (f s st yn cr ex1 ex2) do set %%a=
if %1!==! goto nostring
set st=%1
:top
shift
if %1!==! goto done
set st=%st% %1
goto top
:done
echo Press the key you want to assign %st% to...
key
if errorlevel 0 if not errorlevel 1 set ex1=y
if not %ex1%!==y! goto skip
echo Please verify this by pressing that key again...
key /f
:skip
for %%a in (0 1) do if errorlevel %%a00 set f=%%a
for %%a in (0 1 2 3 4 5 6 7 8 9) do if errorlevel %f%%%a0 set f=%f%%%a
for %%a in (0 1 2 3 4 5 6 7 8 9) do if errorlevel %f%%%a set f=%f%%%a
if %ex1%!==y! set f=0;%f%
echo Do you want a carriage return at the end of %st% (y/n)?
key
if errorlevel 121 if not errorlevel 122 set cr=;13
if errorlevel 89 if not errorlevel 90 set cr=;13
echo on
echo ^Xe[%f%;"%st%"%cr%p
goto reset
:nostring
echo Press the key you want to change...
key
if errorlevel 0 if not errorlevel 1 set ex1=y
if not %ex1%!==y! goto skip2
echo Please verify this by pressing that key again...
key /f
:skip2
for %%a in (0 1) do if errorlevel %%a00 set f=%%a
for %%a in (0 1 2 3 4 5 6 7 8 9) do if errorlevel %f%%%a0 set f=%f%%%a
for %%a in (0 1 2 3 4 5 6 7 8 9) do if errorlevel %f%%%a set f=%f%%%a
if %ex1%!=y! set f=0;%f%
echo Okay, now press the key you want to change it to...
key
if errorlevel 0 if not errorlevel 1 set ex2=y
if not %ex2%!==y! goto skip3
echo Please verify this by pressing that key again...
key /f
:skip3
for %%a in (0 1) do if errorlevel %%a00 set s=%%a
for %%a in (0 1 2 3 4 5 6 7 8 9) do if errorlevel %s%%%a0 set s=%s%%%a
for %%a in (0 1 2 3 4 5 6 7 8 9) do if errorlevel %s%%%a set s=%s%%%a
if %ex2%!==y! set s=0;%s%
echo on
echo ^Xe[%f%;%s%p
echo ^Xe[10;13p
:reset
set prompt=%op%
@echo off
rem cls
if not exist reset.bat goto wipeit
echo Do you want to AVOID wiping out your existing RESET batch file (y/n)?
key
if errorlevel 121 if not errorlevel 122 goto contin
if errorlevel 89 if not errorlevel 90 goto contin
:wipeit
echo @echo on > reset.bat
:contin
echo @echo ^Xe[%f%;%f%p >> reset.bat
echo. >> reset.bat
rem Spacing of next line is critical!
echo @set prompt=%op%>> reset.bat
echo @echo Key with code %f% now reset >> reset.bat
echo Key with code %f% now redefined; type RESET to restore it
:end
for %%a in (f s st yn cr op ex1 ex2) do set %%a=
Note that the four Control-Xs have been changed to ^X for display
here. What you actually run is SETKEY4.BTM:
@echo off
rem c:
rem cd \batch\setkey
ansikey4 %1 %2 %3 %4 %5 %6 %7 %8 %9
Run it without any other parameters to change a key on the
keyboard (it won't work on F11 or F12, alas). You'll need to
have some ANSI driver loaded, of course.
The problem is with KEY.COM and 4DOS it seems. Any system,
assembly programmers around? This code is by Paul Somerson and
Matthew Lake, PC Computing, March, 1992, p. 252. Somerson often
uses COMMAND.COM tricks which won't work with 4DOS, etc. I would
like to use this program for quick and dirty changes to my
keyboard. Sorry for the length of this message...
Saul
---
* Origin: Old Pueblo BBS - Tucson Computer Society (1:300/2)
------------------------------------------------------------------------
Echo Flag : Permanent: N Export: N Personal Read: N
BBS: ESCMAIL Conference: 4dos(ECHO) Imported: 6/07/1992
To: ALL Num: 834 Date: 6/03/1992
From: ED BLACKMAN Re: Time: 8:27 pm
Subj: New Directory Prvt: N Read: N
Hello all,
A few weeks ago, someone posted two .BTM files for changing to a
different directory. I copied them and messed around with `em for a
while, and I think I've made some improvements to the code, so I thought
I'd share it with the rest of you.
---8<----------------------------cut here------------------------------>8---
:
: New Directory!
:
: A better ChangeDirectory batch file.
: Original posted on FidoNet 4DOS echo.
: Modifications by Ed Blackman, 5/92.
:
:
@ECHO OFF
REM What to do if there aren't any parameters
IF #%1 EQ # GOTO NOPARAM
IF #%1 EQ #/r GOTO RESCAN
REM If the parameter passed to ND is "/r", ND rescans your drives. The only
REM problem is that "/r" cannot be part of any of your directory names.
REM This shouldn't be much of a problem, since no one I know uses "/"
REM as part of a directory name. Your mileage may vary, of course.
C:\DOS\FIND "%@UPPER[%1]" < D:\ENV\ND.DIR > D:\ENV\ND.DR1
REM vvvvvvv Change all of ^^^^^^^ these ^^^^^^^ to fit your setup.
TYPE D:\ENV\ND.DR1 | INPUT %%ND
IF "%ND"=="" GOTO NOTFOUND
REM If there is only one match, go to it, otherwise, display a list
REM to select from.
IFF EXIST D:\ENV\ND.DR1 .AND. %@LINES[D:\ENV\ND.DR1] GE 1 THEN
^ SET LN=%@LINES[D:\ENV\ND.DR1] ^ ELSE ^ CDD %ND ^ QUIT ^ ENDIFF
REM Change ^^^^^^^ to fit your setup.
CLS
SET TEXT=Press the cursor keys to select, [Enter] to choose, or [Esc] to
quit.
SET CDIR=%@SELECT[D:\ENV\ND.DR1,4,5,24,75,%TEXT] ^ UNSET TEXT
REM Change ^^^^^^^ to fit your setup.
IF #%CDIR EQ # GOTO NOPARAM
GOTO END
:NOPARAM
TEXT
No directory specified.
Usage: ND [Directory name or partial directory name]
ENDTEXT
UNSET CDIR
QUIT 2
:NOTFOUND
ECHO.
ECHO ND: Directory "%@UPPER[%1]" was not found!
ECHO.
QUIT 2
:RESCAN
REM Subroutine to update the list of directories
TEXT
ENDTEXT
PUSHD
CDD C:\
DEL D:\ENV\ND.DIR >NUL
FOR %A IN (C D E) GOSUB SCAN
REM Change ^^^^^ to fit your setup.
POPD
GOTO END
:SCAN
TEXT
ENDTEXT
ECHO SCANNING DRIVE %A
*CDD %A:\
GLOBAL /HIQ (ECHO %@UPPER[%_CWD] >>!D:\ENV\ND.DIR^ECHOS ■)
REM Change ^^^^^^^ to fit your setup.
RETURN
:END
CDD %CDIR
UNSET CDIR
---8<----------------------------cut here------------------------------>8---
In the original, there were two .BTMs...I combined them into one. Also,
the in the original, if there was more than one match, you had to run
the .BTM without parameters to get to the directory you wanted, which
struck me as rather inefficient, so I fixed it so that if there was
more than match, ND displays a list of possibilities to choose from.
You need to change the paths to reflect your drive and directory setup,
and you'll probably want to delete the REMarks, too.
Enjoy!
Ed Blackman
... White dwarf seeks red giant for binary relationship.
--- Blue Wave/Max v2.05 [NR]
* Origin: The Federal Post -{*}- Fayetteville, NC (1:3634/2.0)
------------------------------------------------------------------------
Echo Flag : Permanent: N Export: N Personal Read: N
BBS: ESCMAIL Conference: 4dos(ECHO) Imported: 6/07/1992
To: HEINZ SONNENWALD Num: 832 Date: 6/04/1992
From: REX CONN Re: Time: 7:35 am
Subj: Redirection Prvt: N Read: N
HS> When I redirect standard output and error to NUL with :
HS> GLOBAL /I DEL *.BAK /Y >& NUL
What you want to do is:
(global /i del *.bak /y) >& nul
This redirects _everything_ inside the command group to nul.
- Rex
--- Maximus 2.00
* Origin: _The_Attic_ (1:109/423)
------------------------------------------------------------------------
Echo Flag : Permanent: N Export: N Personal Read: N
BBS: ESCMAIL Conference: 4dos(ECHO) Imported: 6/07/1992
To: MAYNARD HOGG Num: 823 Date: 6/04/1992
From: JEFF DUNLOP Re: Time: 9:22 pm
Subj: Suggestion For Mkdir Prvt: N Read: N
Hello Maynard!
Wednesday June 03 1992, Maynard Hogg writes to Rex Conn:
MH> In the next version, could you enhance the MKDIR/MD command so that it
MH> creates \DOWN\THE\GARDEN\PATH even when the intermediate directories
MH> DOWN, THE, and GARDEN don't already exist?
In the interim, if you'd like c source to do that:
#define TRIM_CHAR(a,b) if ( (a)[strlen(a)-1] == (b) ) (a)[strlen(a)-1] = 0
int _cdecl make_complex_dir(const char *path_spec)
{
char path_temp[MAXDRIVE + MAXDIR - 1],
*temp = path_temp;
if ( strlen(path_spec) > MAXDRIVE + MAXDIR - 1 )
return 5; /* access denied */
else if ( strlen(path_spec) <= 3 && path_spec[1] == ':' )
return 0; /* root directory passed */
strcpy(path_temp, path_spec);
TRIM_CHAR(path_temp, '\\');
errno = 0;
while ( *temp++ && !errno )
{
if ( *temp == '\\' && *(temp - 1) != ':')
{
*temp = '\0';
mkdir(path_temp);
errno = errno == EACCES ? 0 : errno;
*temp = '\\';
}
}
if ( !errno )
{
mkdir(path_temp);
}
return errno == EACCES ? 0 : errno;
}
Jeff
--- GoldED 2.40
* Origin: DB/Soft Online (1:203/16)
------------------------------------------------------------------------
Echo Flag : Y Permanent: N Export: N Personal Read: N
BBS: ASTRIX Conference: 4DOS Imported: 6/10/1992
To: MIKE HANEWINCKEL Num: 13042 Date: 6/06/1992
From: GEOFF TAYLOR Re: 0 Time: 8:37 pm
Subj: Executable Extensions Prvt: N Read: N
MH-}I was curious to find out how many of you guys took advantage of 4DOS'
MH-}ability to make 'executable extensions'. I find them to be quite a
Yes! Here are mine:
.GIF=C:\PICS\VPIC.EXE
.MOD=C:\SB\MODS\MP.EXE
.ZIP=C:\UTILS\AUTO_UZP.BTM
.ARJ=C:\UTILS\AUTO_UZP.BTM
As for AUTO_UZP.BTM take a look:
@ECHO OFF
SETLOCAL
CLS
SET fname=%1
ECHO AUTO_UZP - CelestialWare
ECHO Automatic DeArchiving of %fname
ECHO.
INKEY /w10 /k"yn" Ready to begin? (Y/N) %%opt
IF "%opt"=="n" CANCEL
SET EXT=%@ext[%1]
IFF "%ext"=="ZIP" THEN
C:\UTILS\COMP\PKUNZIP %FNAME C:\STORAGE\TEMP
GOTO FIN
ELSEIFF "%ext"=="ARJ" THEN
C:\UTILS\COMP\ARJ E %FNAME C:\STORAGE\TEMP
GOTO FIN
ENDIFF
ECHO File is not a PKZip or ARJ file!!
CANCEL
:FIN
ECHO.
ECHO %1 is now ready for use!
ECHO CelestialWare thanks you for using AUTO_UZP...
ENDLOCAL
CDD C:\STORAGE\TEMP
Neat, huh? I thought so. <G>
GT
---
■ OLX 2.1 TD ■ I used to have a handle on life, then DOS closed it
■ RNet 1.07R: The MATRIX Birmingham, AL (205) 323-2016
PCRelay:DCINFO -> #16 MetroLink International Network
4.10 DC Info Exchange MetroLink International Hub
------------------------------------------------------------------------
Echo Flag : Y Permanent: N Export: N Personal Read: N
BBS: ASTRIX Conference: 4DOS Imported: 6/10/1992
To: MIKE HANEWINCKEL Num: 13043 Date: 6/06/1992
From: GEOFF TAYLOR Re: 0 Time: 8:37 pm
Subj: le.bat Prvt: N Read: N
MH-}I have about a zillion and one shell variables and aliases that I like to
MH-}have set when I boot up. I could set each one in my AUTOEXEC.BAT file,
MH-}but that is much to slow. Instead, I have devised two batch files called
MH-}SE.BAT (Save_environment) and LE.BAT (load_environment).
This is what I use...
SETLOCAL
CD C:\SYSTEM
CLS
ECHO.
ECHO CelestialWare Multi-Configuration v1.50
ECHO ---------------------------------------
ECHO.
SET opt=%@SELECT[mconfig.cwr,3,6,12,32]
SET opt1=%@SUBSTR[%opt,1,2]
IFF "%opt" == "" THEN
GOTO ABORT
ELSEIFF "%opt1"=="MS" THEN
SET ext=.msd
GOTO WORK
ELSEIFF "%opt1"=="DO" THEN
SET ext=.max
GOTO WORK
ELSEIFF "%opt1"=="Pl" THEN
SET ext=.pj
GOTO WORK
ELSEIFF "%opt1"=="Wi" THEN
SET ext=.win
GOTO WORK
ELSEIFF "%opt1"=="Ab" THEN
GOTO ABORT
ENDIFF
ECHO ERROR! Choices don't match!
CANCEL
:WORK
GOSUB CHEK
COPY /q config%ext c:\config.sys
COPY /q autoexec%ext c:\autoexec.bat
COPY /q start%ext c:\4dos\4start.btm
GOTO FIN
:CHEK
ECHO Now Booting %opt
ECHO.
inkey /k"yn" Continue (y/n)? %%cnt
if "%cnt"=="n" goto ABORT
RETURN
:ABORT
ECHO.
ECHO CelestialWare Multi-Configuration ABORTED!
ECHO Original configuration still set...
CANCEL
:FIN
REBOOT
As for mconfig.cwr...
MSDOS5.0/QEMM -Standard
DOS5 MAX (no graphics)
Windows 3.1 -386Enh
Plain Jane (QEMM OFF)
ABORT TO CURRENT CONFIG
At one time I did have it change my alias list, set variables, and etc...
but I no longer need that so its outta there.
GT
---
■ OLX 2.1 TD ■ Calm down! Life goes too fast in turbo (50 GigaHertz)
■ RNet 1.07R: The MATRIX Birmingham, AL (205) 323-2016
PCRelay:DCINFO -> #16 MetroLink International Network
4.10 DC Info Exchange MetroLink International Hub
------------------------------------------------------------------------
Echo Flag : Permanent: N Export: N Personal Read: N
BBS: ESCMAIL Conference: 4dos(ECHO) Imported: 6/10/1992
To: MURRAY WELLS Num: 860 Date: 6/07/1992
From: WILLIAM HUGHES Re: Time: 11:12 am
Subj: 4dos Coloured director Prvt: N Read: N
WH>>>> alias `HLDIR set colordir=%1:bright white ^ dir %& ^ set
colordir='
MW>>> Actually, now that I've mentioned it, I wonder if I could dummy
up something with an alias?
WH>> heh heh
MW> <Laugh> *Very* clever Mr. Hughes....
MW> Where were you when I was wading through the manual to kludge
> together an alias that finally does exactly what you suggest?
Right here... :-)
MW> Got any more interesting aliases?
Dunno if you would call them interesting, but I like these...
: Change drive & directory
:
A cdd a:\%1 ^ cls ^ dir /4akmw
B cdd b:\%1 ^ cls ^ dir /4akmw
C cdd c:\%1 ^ cls ^ dir /4akmw
D cdd d:\%1 ^ cls ^ dir /4akmw
:
: Global return to root directory
:
HOME for %a in (c d) %a
:
: Diskcopy
:
AA diskcopy a: a:
BB diskcopy b: b:
:
: Exit shell
:
X exit
:
: Alias help file
:
?? list c:\4dos40\alias.lst ^ cls
:
: Update aliases
:
UA unalias * ^ alias /r r:\alias.lst
:
: Send formfeed to printer
:
FF echo %@char[12] > prn
:
: Send linefeed to printer
:
LF echo %@char[13] > prn
:
* SLMR 2.1a *
--- MsgToss 2.0b (r)
* Origin: Nul 512-615-NUL1 HST/V32b,615-NUL2, NUL3, 1.2Gig (1:387/255)
------------------------------------------------------------------------
Echo Flag : Permanent: N Export: N Personal Read: N
BBS: ESCMAIL Conference: 4dos(ECHO) Imported: 6/10/1992
To: ED BLACKMAN Num: 862 Date: 6/07/1992
From: DAVID COE Re: Time: 10:11 pm
Subj: New Directory Prvt: N Read: N
Hello Ed!
EB> A few weeks ago, someone posted two .BTM files for changing to a
EB> different directory. I copied them and messed around with `em for a
EB> while, and I think I've made some improvements to the code, so I thought
EB> I'd share it with the rest of you.
I liked yours (ND.BTM) so much I improved upon it further (in my opinion), as
noted in the comments below. Thanks, and you're (all) welcome, and I welcome
all feedback.
-David
-+-8<-+--+--+--+--+--+--+--+--+--cut here-+--+--+--+--+--+--+--+--+--+->8-+-
:
: New Directory!
:
: A better ChangeDirectory batch file.
: Original posted on FidoNet 4DOS echo.
: Modifications by Ed Blackman, 5/92.
:
: Further modifications by David Coe 06-07-1992
: ..assumes DOS FIND and SORT are on your search PATH
: ..uses %nd% environment variable path for nd.dir and nd.dr1 files
: (best to set this to a RAM disk, if possible)
: ..creates %nd% environment variable (set to C:) if nonexistent
: (see previous comment)
: ..automatically Scans to create nd.dir if it doesn't already exist
: (so you don't need to do ND /R before you can use it)
: ..sorts nd.dir by directory (independent of drive) when created
: (so matches for selection appear in alphabetical rather than
: diskdrive order)
: ..allows /R (rescan) as first or second parameter
: (so you can rescan and change directory at the same time)
: ..removes temporary environment variables when done
: (just to be nice)
: ..if user specifies only "\", skips FIND (since all would be found)
: (just to save a little time)
: ..QUITs with errorlevels as follows:
: 0 = successfully changed to new directory (or successful /r)
: 1 = user hit Esc to cancel selection
: 2 = specified directory not found
: 3 = ND usage or syntax error
:
@ECHO OFF
:====================================================================
: This is _probably_ the only line you'll need to customize:
SET drivelist=C D E
:====================================================================
rem If user hasn't set nd path, set it to C:
IF #%nd% EQ # SET nd=C:
rem be sure we got exaclty one or two parameters
IF #%1 EQ # .or. #%3 NE # GOTO USAGE
IFF #%2 NE # THEN
rem got two parameters...one must be "/r"; the other is the
rem desired directory
IFF #%2 EQ #/r THEN
SET dd=%1
GOSUB RESCAN
ELSEIFF #%1 EQ #/r THEN
SET dd=%2
GOSUB RESCAN
ELSE
GOTO USAGE
ENDIFF
ELSE
rem got one parameter...must be "/r" or the desired directory
IFF #%1 EQ #/r THEN
GOSUB RESCAN
QUIT 0
ELSE
SET dd=%1
ENDIFF
ENDIFF
rem automatic scan if nd.dir doesn't already exist
IFF NOT EXIST %nd%\ND.DIR THEN
GOSUB RESCAN
ENDIFF
IFF %dd%=\ THEN
rem user wants to select from list of _all_ directories
CLS
SET cdir=%@SELECT[%nd%\ND.DIR,4,5,24,75,ND: Select Directory]
ELSE
rem user wants to select from list of matching directories
FIND "%@UPPER[%dd%]" < %nd%\ND.DIR > %nd%\ND.DR1
TYPE %nd%\ND.DR1 | INPUT %%cdir
IFF "%cdir"=="" THEN
ECHO.
ECHO ND: Directory matching "%@UPPER[%dd%]" was not found.
ECHO.
GOSUB CLEANUP
QUIT 2
ENDIFF
rem if there is only one match, go to it, otherwise, display the
rem list to select from
SET ln=%@LINES[%nd%\ND.DR1]
IFF %LN% EQ 0 THEN
CDD %cdir
GOSUB CLEANUP
QUIT 0
ENDIFF
CLS
SET cdir=%@SELECT[%nd%\ND.DR1,4,5,24,75,ND: Select Directory]
ENDIFF
IFF #%cdir EQ # THEN
rem canceled by "Esc" key
GOSUB CLEANUP
QUIT 1
ELSE
CDD %cdir%
GOSUB CLEANUP
QUIT 0
ENDIFF
:CLEANUP
IF #%dd% NE # UNSET dd
IF #%ln% NE # UNSET ln
IF #%cdir% NE # UNSET cdir
UNSET drivelist
RETURN
:RESCAN
REM Subroutine to update the list of directories
TEXT
ENDTEXT
PUSHD
DEL %nd%\ND.DR1 >NUL
FOR %A IN (%drivelist%) GOSUB SCAN
TEXT
Sorting...
ENDTEXT
SORT /+3 <%nd%\ND.DR1 >%nd%\ND.DIR
POPD
RETURN
:SCAN
TEXT
ENDTEXT
echo Scanning drive %A:
*CDD %A:\
GLOBAL /HIQ (ECHO %@UPPER[%_CWD] >>!%nd%\ND.DR1^ECHOS ■)
RETURN
:USAGE
TEXT
Usage: ND [directory name or partial directory name] [/r]
ENDTEXT
QUIT 3
-+-8<-+--+--+--+--+--+--+--+--cut here-+--+--+--+--+--+--+--+--+->8-+-
--- GoldED 2.40
* Origin: Coe's Home (perhaps), Brinklow, MD, USA (1:109/349.838)
------------------------------------------------------------------------
Echo Flag : Y Permanent: N Export: N Personal Read: N
BBS: ASTRIX Conference: 4DOS Imported: 6/11/1992
To: DEBBIE GORNEY Num: 13078 Date: 6/10/1992
From: DENNIS MCCUNNEY Re: 0 Time: 3:13 am
Subj: Finding a file Prvt: N Read: N
DG> DG> DM╠æ╣ set whdr=% path[% search[slmr.exe]]
DG> DG> DM╠æ╣ought to work. The search routine will find it, and the path fun
DG> DG> DM╠æ╣will return just the path.
DG>
DG> Do you know if there is a way to do this in regular batch. What I would
DG> like to do is have a command in the beginning of my 4dos batch file that
DG> would search the path to see if a file exist called 4dos.com. If not
DG> then display an error message like "4dos.com not found. Program unable
DG> to execute." I know that I can do this using 4dos, but if they don't
DG> have 4dos it won't work, that's why I need to use a standard
DG> batch file command that will function on anyones computer. Is there a
DG> way to do this?
The simplest way to test for 4DOS is to see whether one of the 4DOS
specific environment variables is set, like %_4VER, which returns the
4DOS version number. If that variable does not exist, you aren't under
4DOS.
In a more general case, what you want may be doable via a trick:
for %%v in (%PATH%) do if exist %v\<program> goto wherever
DOS will see the ";" delimiters in the PATH variable as whitespace
characters, so the FOR loop will take each directory in the PATH in
turn, and test for the existance of <program> within it. I believe this
particular trick is DOS version dependant, and mnot guaranteed to work
in all cases, but it will give you the idea.
PCRelay:RUNNINGB -> #3 RelayNet (tm)
4.11 Running Board 2126541349/DS/2125191791/HST/
PCRelay:DCINFO -> #16 MetroLink International Network
4.10 DC Info Exchange MetroLink International Hub
------------------------------------------------------------------------
Echo Flag : Permanent: N Export: N Personal Read: N
BBS: ESCMAIL Conference: 4dos(ECHO) Imported: 6/16/1992
To: LARRY ADAMS Num: 975 Date: 6/13/1992
From: MORRIS TURPIN Re: Time: 10:45 am
Subj: Functions Prvt: N Read: N
In a message dated Jun 10 at 18:07, Larry Adams of 1:135/54.4
wrote to Morris Turpin:
LA> Thanks for the response. I appreciate what you have to say.
LA> I have been getting into 4dos a little and I see its' capabilities.
LA> I still would like to see some more of the uses of the basic
LA> commands.
LA> For example, is it possible to ask for confirmation on the move
LA> command?
LA> I've been using my old move command which prompts me that a file
LA> exists with the same name, and do I still want to make the move.
You will find 4DOS is almost infinitely flexible. To answer your question,
though, yes, you can ask for confirmation on moves. The switches allowed
are:
Format: MOVE [/C /D /H /N /P /Q /R /S /U] source...
destination
source: A file or list of files to move.
destination: The new location for the files.
/C(hanged) /Q(uiet)
/D(irectory) /R(eplace)
/H(idden and system) /S(ubdirectory tree)
/N(othing) /U(pdate)
/P(rompt)
The ones that will be of interest in your case are:
/P(rompt): Ask the user to confirm each move by
pressing Y or N. An N response will skip that
particular file.
/R(eplace): Prompt for a Y or N response before
overwriting an existing destination file.
Have a look at the help screen (press F1). The manual is excellent (all 1MB
of it). I keep it compressed on disk for quick reference. That's where the
above was captured from, incidentally.
To give you an example of what 4DOS is capable of, here is a .BTM file to
calculate and display the julian date:
JULIAN.BTM
set doy=%@eval[%@date[%_date]-%@date[1/1/%@substr[%_date,1,-2]]+1]
set week=%@int[%@eval[%doy/7+1]]
set lstdigt=%@substr[%_date,1,-1]
iff %lstdigt eq 1 then ^ set ending=st
elseiff %lstdigt eq 2 then ^ set ending=nd
elseiff %lstdigt eq 3 then ^ set ending=rd
else set ending=th
endiff
:: rem the next two lines are on one line
echo Today is the %doy%%ending day in the %week%%ending week of
19%@substr[%_date,1,-2].
unset doy week ending lstdigt
It's been a while since I last played with it and I can't swear that all the
bugs are worked out, but if not you're welcome to fix it up and post it back
to the echo at large. Note though that the second and third lines from the
end are really one line. Try to do this with COMMAND.COM!
--- msged 2.06
* Origin: Ansi's Escape, Echo Point -- Ottawa, Ontario (1:163/513.2)
------------------------------------------------------------------------
Echo Flag : Permanent: N Export: N Personal Read: N
BBS: ESCMAIL Conference: 4dos(ECHO) Imported: 6/16/1992
To: ALL Num: 974 Date: 6/14/1992
From: CHARLES BUCHANAN Re: Time: 8:51 pm
Subj: Increment Alias Prvt: N Read: N
Hello All!
While browsing the great 4dos manual, I was looking for an easy way to
increment (or decrement) a variable. I saw the calc alias in the manual which
seemed to be a way to do an increment. So here's what I have :
inc=`set %1=%@eval[%%1+1]`
dec=`set %1=%@eval[%%1-1]`
I know this works if I have something like :
inc myvar
dec myvar
but I don't understand why I have to have the ` at the beginning and end of
the alias. Is there a better way to do this ?
Charles
--- GoldED 2.40+
* Origin: Charlie's Hideout (1:3812/10.6)
------------------------------------------------------------------------
Echo Flag : Y Permanent: N Export: N Personal Read: N
BBS: ASTRIX Conference: 4DOS Imported: 6/17/1992
To: JOHN DURSO Num: 13151 Date: 6/12/1992
From: MIKE HANEWINCKEL Re: 0 Time: 11:56 pm
Subj: auto in start up Prvt: N Read: N
JD> I'd like to do the following if it is possible. I want to start my
JD> computer with an electric timer. If the timer starts the computer,
JD> it would run a certain program (run.bat), however if the computer
JD> is turned on by a person (most likely me) I want to be able to
JD> abort the auto program run and have my menu program called up
JD> (menu.bat)
JD>
JD> In other words, what I'd like to happen is:
JD>
JD> 1) Computer turned on (either by me or Timer)
JD>
JD> 2) Print to screen
JD> ┌─It would be nice if this could
JD> │ be a count down timer, i.e.
JD> │ 10 9 8 7 6 5 4 etc.
JD> │
JD> │
JD> AUTOMATIC EXECUTION WILL RUN IN xxxx SECONDS
JD>
JD> TYPE ANY KEY TO ABORT AND CALL UP MENU
JD>
JD>
JD> 3) If any key is typed within 120 seconds, it would abort the auto
JD> execution and run load up the menu (menu.bat)
JD>
JD> 4) However, if nothing is typed in 120 seconds, the auto execution
JD> (run.bat) would be run.
JD>
JD>
JD> Can this be done either in 4DOS or MS DOS?
JD>
JD> Thanks
JD>
JD> John
JD>
JD> PS: IT would be real nice if the Second count down was in big
JD> numbers (like an 1" high) but thats probablyasking too much.
I don't know if this is what you are looking for, but here is a 4DOS batch
file that will count down for the number of seconds that is sent to it as
it's first parameter.
ie. Countdown.btm 30
will count down for 30 seconds. You can edit it for a fixed number of
seconds.It will display large ANSI digits on the screen that look similar
to a liquid crystal clock. It does this by calling a small executable
program, LCD.EXE. It is one of a number of BIG FONT programs that is
part of a ZIP file called 'BIGECHO.ZIP' It should not be much trouble
to locate it in on a local board. In case you can't find it I also
included the UUENCODE code for it.
--------------------------------------------------------------
REM COUNT.BTM
setlocal ^setdos /s0:0 ^ CLS BLA on WHI
SET START=%@Time[%_Time]
SET COUNT=%1%
SET OldCOUNT=%COUNT
ALIAS SCR=SCREEN 2 10 `^` LCD %%COUNT
SCR
:Loop
SET COUNT=%#EVAL[%Start% - %#Time[%_Time]% + %1% ]
IF %@len[%count]=1 set COUNT=0%count%
IF %COUNT LT 0 (BEEP 400 10^ GOTO FINISH)
IF %oldCOUNT NE %COUNT (SET OldCOUNT=%COUNT% ^ SCR)
GOTO LOOP
:FINISH
setdos /s10:100 ^cls
ENDLOCAL
---------------------------------------------------------------
I didn't quite know how to deal with the cursor. I wanted to
disable it during the batch file but I know of no way to return
it to it's original state so I just set it back to the default
state. I will put the UU code for LCD.COM in the next message.
Mike
---
■ MegaMail 2.10 #0:Press any key to continue or any other key to quit
PCRelay:PUNKIN -> #284 RelayNet (tm)
------------------------------------------------------------------------
Echo Flag : Y Permanent: N Export: N Personal Read: N
BBS: ASTRIX Conference: 4DOS Imported: 6/19/1992
To: ALL Num: 13204 Date: 6/16/1992
From: DOUG MACLEAN Re: 0 Time: 7:11 am
Subj: 4DOS and the variable EMS Prvt: N Read: N
Here is a litte use for 4DOS that I use to dyanmically adjust my
cache to reflect the usage on EMS I have on my system. I do a lot of
beta testing so I use BOOT.SYS to permit menu selection of my
environment on boot up. One option is the ability to edit a line in
config.sys at boot time. I use this to adjust the size of my second
RAM drive. I share my EMS between two RAM drives and my cache. The
problem was to make my autoexec.bat respond to changes in the size of
this RAM drive.
device=c:\sys\emm.sys AT D000 208 258 2A8 2B8
device=c:\sys\himem.sys
device=c:\sys\mouse.sys
device=c:\sys\nansi.sys
device=c:\sys\boot.sys /CX0B /T5 /L25 /U^
device=BOOT.A /D2
device=TOP ┌────────────────────────────┐
device=TOP │ │
device=TOP │ ^Select ^Command ^Processor │
device=TOP │ │
device=TOP ╘════════════════════════════╛
device=TOP
device=BOOT.1 ^M^S-^D^O^S version 5.00
shell=c:\command.com c:\ /e:850 /p
device=c:\sys\ramdrive.sys 0510 128 064 /a
device=c:\sys\ramdrive.sys 3500 128 128 /a
device=BOOT.SET dostype=msdos
device=BOOT.2 4^D^O^S version 4.01ß11
shell=c:\4dos.com
device=c:\sys\ramdrive.sys 0500 128 064 /a
device=BOOT.EDIT
device=c:\sys\ramdrive.sys 2500 128 128 /a
device=BOOT.SET dostype=4dos
device=BOOT.B /D5
device=TOP ┌───────────────────────┐
device=TOP │ │
device=TOP │ ^Select ^Cache ^System │
device=TOP │ │
device=TOP ╘═══════════════════════╛
device=TOP
device=BOOT.1 ^M^S-^Smart^Drv
device=c:\sys\smartdrv.sys 1472
device=BOOT.SET cache=nocache
device=BOOT.2 ^P^C-^Cache
device=BOOT.SET cache=pccache
device=BOOT.3 ^Hyper^Cache 286
device=c:\bin\hyper286.exe S H OK:11
device=BOOT.SET cache=nocache
device=BOOT.4 ^Norton ^Cache
device=c:\nc\ncache.exe /EXT= /USEHIGH=ON /USEHMA=ON
device=BOOT.SET cache=nocache
device=BOOT.5 ^P^C-^Cache for ^Windows 3.1
device=BOOT.SET cache=wincache
device=BOOT.END
buffers=030
files=030
lastdrive=z
stacks=0,0
break=on
DOS=HIGH,UMB
Is my config.sys. The line following device=BOOT.EDIT is edited each
time I boot up. The following is the portion of my autoexec that
allocates 80% of the remaining EMS to the cache.
@echo off
if "%@eval[2+2]" == "4" loadbtm on
c:\bin\dos col 43
c:\nc\be sa bold blue on black /CLS
c:\nc\vl d: "Bin Drv"
c:\nc\vl e: "Work Drv"
c:\sys\boot set
goto %cache%
:pccache
c:\bin\pc-cache /IA /IB /SIZEXT=1472
goto nocache
:wincache
goto %dostype%1
:msdos1
c:\bin\pc-cache /IA /IB /SIZEXP=1500
goto nocache
:4dos1
c:\bin\pc-cache /IA /IB /SIZEXP=%@int[%@eval[%@ems[K]*.8]]K
:nocache
As you can see, I use the 4DOS functions to poll the EMS memory and
return the proper value.
Just a little trick I thought could be adapted to other uses.
Regards,
Doug
└─┐
PCRelay:MOONDOG -> #35 RelayNet (tm)
4.11 HUBMOON-MoonDog BBS, Brooklyn,NY 718 692-2498
PCRelay:DCINFO -> #16 MetroLink International Network
4.10 DC Info Exchange MetroLink International Hub
------------------------------------------------------------------------
Echo Flag : Y Permanent: N Export: N Personal Read: N
BBS: ASTRIX Conference: 4DOS Imported: 6/19/1992
To: JOHN DURSO Num: 13190 Date: 6/14/1992
From: PIERRE DARMON Re: 0 Time: 11:34 pm
Subj: auto in start up Prvt: N Read: N
JD>PD>In order to get your countdown feature, you would have to, in a loop, chec
>if a key was pressed with "inkey /w0 %%key", display your big numbers,
>and check the time before looping again. You would have to test the time
>and see if 120s have elapsed since you started. Definitely doable with
>the variable %_time and the function %$time (replace $ with at-sign) but
>more work.
JD>Pierre
JD>Thanks, How much more work are we talking about here?
Well actually not as much as I thought. Here is a batch file you call
with a parameter which is the max number of seconds to wait. It displays
the count down and wait for a key. If a key is pressed before time is
out, the count down stops and says a key was pressed, otherwise it says
no key was pressed. It should be trivial to adapt it to where you need
it.
Note that the line with scrput ends with four Alt-255 characters. This is
just a kludge to print some spaces to erase the remiander of the line.
This is so the count shows 101, 100, 99, ... rather than 101, 100, 990,
...
---------------------------
#echo off
setlocal
setend=%#eval[%@time[%_time]+%1]
set key=
echo Press a key within %1 seconds
set row=%_row
:loop
set remainder=%#eval[%end-%@time[%_time]]
iff %remainder gt 0 then
inkey /w0 %%key
scrput %row 0 %_fg ON %_bg %remainder ∙∙∙∙
iff "%key" == "" then
goto loop
else
goto done
endiff
endiff
:done
iff "%key" == "" then
echo no key pressed within timeout
else
echo key pressed within timeout
endiff
endlocal
---------------------------
As far as displaying big numbers, that's up to you. Just replace the line
with SCRPUT with whatever you please. 4DOS alone can't do that though.
Pierre Darmon
PCRelay:ACC -> #4 RelayNet (tm)
------------------------------------------------------------------------
Echo Flag : Y Permanent: N Export: N Personal Read: N
BBS: ASTRIX Conference: 4DOS Imported: 6/19/1992
To: GEORGE MENO Num: 13191 Date: 6/13/1992
From: GREG VAIDMAN Re: 0 Time: 12:20 am
Subj: here's a sample bat f 1/2 Prvt: N Read: N
╓─────────┤ on 06-10-92 (02:52), george meno said to greg vaidman ├──────────╖
║ Greg, I'm interested. For me 4DOS has become a great learning ║
║ experience. I'm not using as many bat files any more. ║
╙────────┤ and greg vaidman replied on sat, 06-13-1992 at 02:13... ├─────────╜
well here it is (my optimal copy program). at this time, it requires
the dos "find" and "sort" commands, but i'm working on a new
algorithm that doesn't. it makes major use of a temp file, so make
sure you have a "tmp" environment variable pointing to a ramdisk.
i guess this will be broken up over a few entries, but here goes:
───────────///───────────
@echo off
setlocal
if %_env lt 300 goto outofenv
set ocd=06/01/92
set ocv=1.31
set pgm=%#name[%0]
set bot=%#eval[%_rows-1] %@eval[%_columns-1]
if %# lt 2 goto syntax
set dest=%[%#]
if %@removable[%dest]==0 goto syntax
set i=0
:srcloop
set source=%source %#word[%i,%&]
set i=%#eval[1+%i]
if %i lt %@eval[%#-1] goto srcloop
if x%dest==x. set dest=%_cwd
set d=%#substr[%dest,%#eval[%@len[%dest]-1]]
if x%d ne x\ if x%d ne x: set dest=%dest\
set stot=0
set files=0
iff "%ocopy"=="" then
set ocopy=move
else
set ocopy=%@lower[%ocopy]
endiff
set ofile=%#full[%#unique[%tmp]]
set ofile2=%#full[%@unique[%tmp]]
del %ofile >& nul
echos please wait. processing source files
for %%i in ( %source ) do gosub process
iff %files==0 then
echo\
echo error: no files found to process! aborting...
goto quit
endiff
type %ofile | sort /r >! %ofile2
del %ofile >& nul
ren %ofile2 %ofile >& nul
set i=%#line[%ofile,%@lines[%ofile]]
set smallest=%#eval[%@substr[%i,0,10]]
cls whi on blue
drawbox 02 09 17 69 0 cya on cya fill cya shadow
drawbox 03 11 16 67 2 whi on cya
scrput 04 20 bri cya on cya ocopy %ocv ■ gregory vaidman ■ %ocd
drawhline 05 11 57 1 whi on cya
scrput 06 13 bri whi on cya source files:
scrput 07 13 bri whi on cya source info:
scrput 08 13 bri whi on cya destination:
scrput 09 13 bri whi on cya operation:
scrput 10 13 bri whi on cya requires:
scrput 06 27 bri yel on cya %source
scrput 07 27 bri yel on cya %files files, %#int[%@eval[%stot/1024+.5]]k
scrput 08 27 bri yel on cya %dest
scrput 09 27 bri yel on cya %ocopy
scrput 11 13 bri whi on cya now processing:
drawhline 14 11 57 1 whi on cya
:nextdisk
drawbox 11 29 13 66 0 cya on cya fill cya
set xyz=%#int[%@eval[%stot/1457664+1]] 3½
set pdq=%#int[%@eval[%stot/1213952+1]] 5¼
scrput 10 27 bri yel on cya approx %xyz or %pdq HD req'd
unset xyz pdq
drawbox 20 16 22 63 1 whi on mag fill mag shadow
scrput 21 19 bri whi on mag Please insert next disk and press a key...
screen 21 61
beep 392 1 523 1 659 1 784 1 10 1 659 1 784 1
set k=
inkey %%k
if x%k == x goto cancelled
drawbox 15 13 15 65 2 bri yel on cya
drawbox 20 01 %bot 0 blu on blu fill blu
<<MESSAGE TOO LONG -- SOME LINES WERE DELETED>>
PCRelay:DCINFO -> #16 MetroLink International Network
4.10 DC Info Exchange MetroLink International Hub
------------------------------------------------------------------------
Echo Flag : Y Permanent: N Export: N Personal Read: N
BBS: ASTRIX Conference: 4DOS Imported: 6/19/1992
To: GEORGE MENO Num: 13192 Date: 6/13/1992
From: GREG VAIDMAN Re: 0 Time: 12:20 am
Subj: here's a sample bat f 2/2 Prvt: N Read: N
>>> Continued from previous message
scrput 21 27 bri whi on red Press a key to continue...
inkey /w5 %%dummy
endiff
set files=%@eval[%files-1]
type %ofile | find /v "%i" >! %ofile2
del %ofile >& nul
ren %ofile2 %ofile >& nul
set duse=%@diskused[%dest,b]
drawbox 15 13 15 %#int[%@eval[13.5+52*%duse/%dtot]] 0 bri yel on cya
drawbox 11 29 13 66 0 cya on cya fill cya
set stot=%@eval[%stot-%fsize]
drawbox 07 27 07 66 0 cya on cya fill cya
scrput 07 27 bri yel on cya %files files, %#int[%@eval[%stot/1024+.5]]k
else
scrput 13 29 bri yel on cya SKIPPING
set l=%@eval[%l+1]
endiff
if %l le %files goto nextfile
goto quit
:process
iff exist %i then
set sz=%@filesize[%i,b]
for %j in ( 3 4 5 6 7 8 9 ) do if %@len[%sz] lt %j set sz= %sz
echo %sz : %@full[%i] >>! %ofile
set stot=%@eval[%stot+%sz]
set files=%@eval[1+%files]
echos .
endiff
return
:syntax
echo\
echo OCopy %ocv ■ Gregory Vaidman ■ %ocd
echo\
echo Syntax: %pgm filespec { filespec ... } destination
echo\
echo Purpose: ocopy will [copy/move] all the specified files to the
echo destination directory while optimizing disk usage on
echo the destination disk.
echo\
echo the distinction between copy and move is made by setting the
echo "ocopy" environment variable. by setting it to "copy", ocopy
echo will copy the files. without "ocopy" in the environment, the
echo default is "move".
echo\
echo ocopy uses the "tmp" environment variable for its temporary
echo files. it is strongly recommended that you set up a ramdisk
echo and set the "tmp" environment variable to point to it.
echo\
goto quit
:outofenv
echo\
echo OCopy %ocv ■ Gregory Vaidman ■ %ocd
echo\
echo Error!: out of environment space! please increase your
echo environment size by changing the "shell" line in
echo your config.sys, or the "environment=" line in
echo your 4dos.ini file.
echo\
goto quit
:cancelled
drawbox 19 0 %bot 0 blu on blu fill blu
drawbox 19 16 23 63 1 whi on red fill red shadow
scrput 21 25 bri whi on red OCopy session cancelled by user
goto quit
:quit
del %ofile %ofile2 >& nul
screen %@eval[%_rows-1] 0
*quit
───────────///───────────
OΓεO Vαîδµα∩
⌡ ⌡
---
■ OLX 2.2 ■ General Error Reading John Dvorak
PCRelay:DATABASE -> #1251 RelayNet (tm)
4.11 RelayNet(tm):Data-Base BBS 908-735-2180 <ASP>
PCRelay:DCINFO -> #16 MetroLink International Network
4.10 DC Info Exchange MetroLink International Hub
------------------------------------------------------------------------
Echo Flag : Permanent: N Export: N Personal Read: N
BBS: ESCMAIL Conference: 4dos Imported: 6/20/1992
To: CHARLES BUCHANAN Num: 1027 Date: 6/15/1992
From: BOB CAMPBELL Re: Time: 12:19 pm
Subj: Increment Alias Prvt: N Read: N
> an easy way to increment (or decrement) a variable. I
> inc=`set %1=%@eval[%%1+1]`
> dec=`set %1=%@eval[%%1-1]`
>
> but I don't understand why I have to have the ` at the
> beginning and end of the alias. Is there a better way to
> do this ?
I can't help you with the ` but I'd like to share my INC and DEC with you.
It allows you to specify how much to inc or dec but it also defaults to 1.
Each is on one line of course.
INC=iff "%2" eq "" then^set %1=%@eval[%[%1]+1]^else^set
%1=%@eval[%[%1]+%2]^endiff
DEC=iff "%2" eq "" then^set %1=%@eval[%[%1]-1]^else^set
%1=%@eval[%[%1]-%2]^endiff
--- OPMED 3.00
* Origin: 4DOS leaves command.com in awe (1:119/911.1)
------------------------------------------------------------------------
Echo Flag : Permanent: N Export: N Personal Read: N
BBS: ESCMAIL Conference: 4dos Imported: 6/21/1992
To: MAYNARD HOGG Num: 1074 Date: 6/19/1992
From: BRUCE KINGSLAND Re: Time: 3:19 am
Subj: SUGGESTION FOR MKDIR Prvt: N Read: N
In a message originally
From: MAYNARD HOGG To: SERGE DELBONO Date: 06-12-92 (15:50) Re: SUGGESTION 4
MD
MH* MH>In the next version, could you enhance the MKDIR/MD command so that it
MH* MH>creates \DOWN\THE\GARDEN\PATH even when the intermediate directories
MH* MH>DOWN, THE, and GARDEN don't already exist?
MH* SD>I don't think it's a good idea :
MH* >If you misspell something like :
MH* >md \down\thee\garden\path
MH* >you create a parasite tree in your garden !
MH* A minor inconvenience since I've written a utility, DELDIR, for
MH* deleting empty directories from the bottom up. The 4DOS DEL/XS command
MH* only works from the top down.
I wrote this alias for deleting entire trees:
CLN=for %d in (%&) (iff isdir %d then^del /sxyz %d^else^echo %d not
dir^endiff)
Regardless of the tree size, it has always performed well for me, even
on NW drives. But I agree with MH, an MD or COPY that would create the
tree would be great!
---
* Origin: ET/PPCUG BBS 503-625-- 7752 or 2421 Intel 9600EX (1:105/201)
------------------------------------------------------------------------
Echo Flag : Permanent: N Export: N Personal Read: N
BBS: ESCMAIL Conference: 4dos Imported: 6/23/1992
To: TOM HALL Num: 1131 Date: 6/20/1992
From: FURLAN PRIMUS Re: Time: 6:35 pm
Subj: Eliminating Duplicate Ent Prvt: N Read: N
Hello Tom,
languaging in a message on <Jun 18 13:18>, in 4DOS, you wrote:
TH> I seem to recall that sometime ago someone posted information
TH> here regarding a 4DOS batch file that effectively sorted and
TH> removed duplicate entries from the history list.
TH> Does anyone else recall this? If I'm correct, could someone
TH> re-post that .BTM file?
here's what i use here (newhist.btm):
_ _ _ O_/_ _C_U_T_ _H_E_R_E_ _ _ _ _ _ _
O \
history > temp.in
sortf temp.in unique.in
awk "$0 != prev { prev = $0; print }" < unique.in > unique.out
history /f
history /r unique.out
del temp.in unique.in unique.out /q
_ _ _ O_/_ _C_U_T_ _H_E_R_E_ _ _ _ _ _ _
O \
it assumes that you have FSort and AWK as well as 4DOS...
fl
--- msgedsq 2.1
* Origin: Too much of a good thing can be wonderful. (1:141/590)
------------------------------------------------------------------------
Echo Flag : Y Permanent: N Export: N Personal Read: N
BBS: ASTRIX Conference: 4DOS Imported: 6/25/1992
To: ALL Num: 13313 Date: 6/20/1992
From: JOHN DURSO Re: 0 Time: 11:36 am
Subj: help in beep loop Prvt: N Read: N
I have a batch file that I run, I'd like it to beep with each loop,
however, I'd like it to beep louder with each loop. Anyone know
how I could do this? Thanks ─────────────────────────────────┐
│
NOTE: BIGECH is a program to make the numbers big, if you don't │
have this program, just remve the name fom that line and it will │
use regular numbers, also start off batch with amount of numbers │
you want in countdown... count 120 for a two minute count down │
│
┌───┘
John │
******************* │
count.btm │
******************* │
@echo off │
setlocal ^setdos /s0:0 ^ CLS │
SET START=%@Time[%_Time] │
SET COUNT=%1%top │
SET OldCOUNT=%COUNT │
ALIAS SCR=SCREEN 2 10 `^` d:\bigecho %%COUNT │
:loop2 │
SCR │
set key= │
inkey /w0 "Press any key for menu within seconds " %%key │
│
iff "%key" == "" then │
beep ────────────────────────────────────────────────────┘
goto loop
else
echo rem a key was pressed. Do menu stuff here
quit
endiff
set key=
:Loop
SET COUNT=%#EVAL[%Start% - %#Time[%_Time]% + %1% ]
IF %@len[%count]=1 set COUNT=0%count%
IF %COUNT LT 0 (BEEP 400 10^ GOTO FINISH)
IF %oldCOUNT NE %COUNT (SET OldCOUNT=%COUNT% ^ SCR)
GOTO LOOP2
:FINISH
setdos /s10:100 ^cls
ENDLOCAL
PCRelay:CHANNEL -> #15 RelayNet (tm)
4.11 Channel 1 (R) * 617-354-8873 * 80 Lines *
------------------------------------------------------------------------
Echo Flag : Y Permanent: N Export: N Personal Read: N
BBS: ASTRIX Conference: 4DOS Imported: 6/25/1992
To: GEORGE MENO Num: 13191 Date: 6/13/1992
From: GREG VAIDMAN Re: 0 Time: 12:20 am
Subj: here's a sample bat f 1/2 Prvt: N Read: N
╓─────────┤ on 06-10-92 (02:52), george meno said to greg vaidman ├──────────╖
║ Greg, I'm interested. For me 4DOS has become a great learning ║
║ experience. I'm not using as many bat files any more. ║
╙────────┤ and greg vaidman replied on sat, 06-13-1992 at 02:13... ├─────────╜
well here it is (my optimal copy program). at this time, it requires
the dos "find" and "sort" commands, but i'm working on a new
algorithm that doesn't. it makes major use of a temp file, so make
sure you have a "tmp" environment variable pointing to a ramdisk.
i guess this will be broken up over a few entries, but here goes:
───────────///───────────
@echo off
setlocal
if %_env lt 300 goto outofenv
set ocd=06/01/92
set ocv=1.31
set pgm=%#name[%0]
set bot=%#eval[%_rows-1] %@eval[%_columns-1]
if %# lt 2 goto syntax
set dest=%[%#]
if %@removable[%dest]==0 goto syntax
set i=0
:srcloop
set source=%source %#word[%i,%&]
set i=%#eval[1+%i]
if %i lt %@eval[%#-1] goto srcloop
if x%dest==x. set dest=%_cwd
set d=%#substr[%dest,%#eval[%@len[%dest]-1]]
if x%d ne x\ if x%d ne x: set dest=%dest\
set stot=0
set files=0
iff "%ocopy"=="" then
set ocopy=move
else
set ocopy=%@lower[%ocopy]
endiff
set ofile=%#full[%#unique[%tmp]]
set ofile2=%#full[%@unique[%tmp]]
del %ofile >& nul
echos please wait. processing source files
for %%i in ( %source ) do gosub process
iff %files==0 then
echo\
echo error: no files found to process! aborting...
goto quit
endiff
type %ofile | sort /r >! %ofile2
del %ofile >& nul
ren %ofile2 %ofile >& nul
set i=%#line[%ofile,%@lines[%ofile]]
set smallest=%#eval[%@substr[%i,0,10]]
cls whi on blue
drawbox 02 09 17 69 0 cya on cya fill cya shadow
drawbox 03 11 16 67 2 whi on cya
scrput 04 20 bri cya on cya ocopy %ocv ■ gregory vaidman ■ %ocd
drawhline 05 11 57 1 whi on cya
scrput 06 13 bri whi on cya source files:
scrput 07 13 bri whi on cya source info:
scrput 08 13 bri whi on cya destination:
scrput 09 13 bri whi on cya operation:
scrput 10 13 bri whi on cya requires:
scrput 06 27 bri yel on cya %source
scrput 07 27 bri yel on cya %files files, %#int[%@eval[%stot/1024+.5]]k
scrput 08 27 bri yel on cya %dest
scrput 09 27 bri yel on cya %ocopy
scrput 11 13 bri whi on cya now processing:
drawhline 14 11 57 1 whi on cya
:nextdisk
drawbox 11 29 13 66 0 cya on cya fill cya
set xyz=%#int[%@eval[%stot/1457664+1]] 3½
set pdq=%#int[%@eval[%stot/1213952+1]] 5¼
scrput 10 27 bri yel on cya approx %xyz or %pdq HD req'd
unset xyz pdq
drawbox 20 16 22 63 1 whi on mag fill mag shadow
scrput 21 19 bri whi on mag Please insert next disk and press a key...
screen 21 61
beep 392 1 523 1 659 1 784 1 10 1 659 1 784 1
set k=
inkey %%k
if x%k == x goto cancelled
drawbox 15 13 15 65 2 bri yel on cya
drawbox 20 01 %bot 0 blu on blu fill blu
<<MESSAGE TOO LONG -- SOME LINES WERE DELETED>>
PCRelay:DCINFO -> #16 MetroLink International Network
4.10 DC Info Exchange MetroLink International Hub
------------------------------------------------------------------------
Echo Flag : Y Permanent: N Export: N Personal Read: N
BBS: ASTRIX Conference: 4DOS Imported: 6/25/1992
To: GEORGE MENO Num: 13192 Date: 6/13/1992
From: GREG VAIDMAN Re: 0 Time: 12:20 am
Subj: here's a sample bat f 2/2 Prvt: N Read: N
>>> Continued from previous message
scrput 21 27 bri whi on red Press a key to continue...
inkey /w5 %%dummy
endiff
set files=%@eval[%files-1]
type %ofile | find /v "%i" >! %ofile2
del %ofile >& nul
ren %ofile2 %ofile >& nul
set duse=%@diskused[%dest,b]
drawbox 15 13 15 %#int[%@eval[13.5+52*%duse/%dtot]] 0 bri yel on cya
drawbox 11 29 13 66 0 cya on cya fill cya
set stot=%@eval[%stot-%fsize]
drawbox 07 27 07 66 0 cya on cya fill cya
scrput 07 27 bri yel on cya %files files, %#int[%@eval[%stot/1024+.5]]k
else
scrput 13 29 bri yel on cya SKIPPING
set l=%@eval[%l+1]
endiff
if %l le %files goto nextfile
goto quit
:process
iff exist %i then
set sz=%@filesize[%i,b]
for %j in ( 3 4 5 6 7 8 9 ) do if %@len[%sz] lt %j set sz= %sz
echo %sz : %@full[%i] >>! %ofile
set stot=%@eval[%stot+%sz]
set files=%@eval[1+%files]
echos .
endiff
return
:syntax
echo\
echo OCopy %ocv ■ Gregory Vaidman ■ %ocd
echo\
echo Syntax: %pgm filespec { filespec ... } destination
echo\
echo Purpose: ocopy will [copy/move] all the specified files to the
echo destination directory while optimizing disk usage on
echo the destination disk.
echo\
echo the distinction between copy and move is made by setting the
echo "ocopy" environment variable. by setting it to "copy", ocopy
echo will copy the files. without "ocopy" in the environment, the
echo default is "move".
echo\
echo ocopy uses the "tmp" environment variable for its temporary
echo files. it is strongly recommended that you set up a ramdisk
echo and set the "tmp" environment variable to point to it.
echo\
goto quit
:outofenv
echo\
echo OCopy %ocv ■ Gregory Vaidman ■ %ocd
echo\
echo Error!: out of environment space! please increase your
echo environment size by changing the "shell" line in
echo your config.sys, or the "environment=" line in
echo your 4dos.ini file.
echo\
goto quit
:cancelled
drawbox 19 0 %bot 0 blu on blu fill blu
drawbox 19 16 23 63 1 whi on red fill red shadow
scrput 21 25 bri whi on red OCopy session cancelled by user
goto quit
:quit
del %ofile %ofile2 >& nul
screen %@eval[%_rows-1] 0
*quit
───────────///───────────
OΓεO Vαîδµα∩
⌡ ⌡
---
■ OLX 2.2 ■ General Error Reading John Dvorak
PCRelay:DATABASE -> #1251 RelayNet (tm)
4.11 RelayNet(tm):Data-Base BBS 908-735-2180 <ASP>
PCRelay:DCINFO -> #16 MetroLink International Network
4.10 DC Info Exchange MetroLink International Hub
------------------------------------------------------------------------
Echo Flag : Y Permanent: N Export: N Personal Read: N
BBS: ASTRIX Conference: 4DOS Imported: 6/25/1992
To: PIERRE DARMON Num: 13211 Date: 6/17/1992
From: REX CONN Re: 13141 Time: 7:28 pm
Subj: IMRPOVING ON COPY Prvt: N Read: N
-> I would like to "replace" 4DOS's COPY by a batch file that would work
-> the same as the original COPY except when the target files already
-> exist. Currently COPY's /r switch only prompts for a yes or no. What
-> I want to add is to display the date and time (and possibly the size)
-> of the source and target files before I prompt for yes or no.
->
-> Is that feasible with 4DOS current functions. The problem I see right
-> away is to replicate COPY's handling of wildcards. Otherwise it would
Use FOR; it uses the same wildcard handling as COPY. Then put the
FILEDATE, FILETIME, & FILESIZE variable functions inside a command group
in the FOR.
- Rex
PCRelay:DCINFO -> #16 MetroLink International Network
4.10 DC Info Exchange MetroLink International Hub
------------------------------------------------------------------------
Echo Flag : Y Permanent: N Export: N Personal Read: N
BBS: ASTRIX Conference: 4DOS Imported: 6/25/1992
To: DEBBIE GORNEY Num: 13355 Date: 6/22/1992
From: MIKE HANEWINCKEL Re: 0 Time: 10:35 pm
Subj: NEW 4DOS Prvt: N Read: N
DG>What I would like to see is a dir switch that would allow just the
file
DG>name (no stats) + the description. I can do the first but I would
like
DG>it to display the description as well for use in a menu that I have
DG>created using the select command.
How about this:
REM DESCDIR.BTM
REM
IF NOT ISDIR %1 THEN GOTO ERROR
SETLOCAL
:LOOP
IFF %# GT 0 THEN
IF NOT ISDIR %1 GOTO ERROR
ECHO Directory - %1
FOR %%F IN (%1\*.*) DO (ECHO %@name[%F].%@ext[%F] t
t%@descript[%F])
SHIFT
ECHO.
GOTO Loop
ELSE
ENDLOCAL
QUIT
EXIT
ENDIFF
:ERROR
ECHO USAGE: DESCDIR directory1 [directory2] [directory3]
QUIT -1
EXIT
Mike
■ SLMR 2.1a ■ \∙o·,■°∙.┌:"/∙°v■ «───── Tagline debris.
PCRelay:DOWNEY -> #1435 RelayNet (tm)
4.11 The Downey BBS,Downey CA 310-806-2226 v.32bis
PCRelay:DCINFO -> #16 MetroLink International Network
4.10 DC Info Exchange MetroLink International Hub
------------------------------------------------------------------------
Echo Flag : Y Permanent: N Export: N Personal Read: N
BBS: ASTRIX Conference: 4DOS Imported: 6/25/1992
To: JIM LYNCH Num: 13331 Date: 6/18/1992
From: RICHARD AMICK Re: 0 Time: 7:21 pm
Subj: TEE,REDIRECT STDOUT/ERR Prvt: N Read: N
JL│Anyone know if it is possible to redirect STDOUT and STDERR to a
│file using 4DOS's >&, and also use TEE so STDOUT and STDERR also
│go to the screen?
At risk of seeming impertinent, why not use:
foo >& junk^type /p junk
or the like?
---
■ OLX 2.2 ■ Evolution is God's way of issuing updates.
PCRelay:EDSHOME -> #780 RelayNet (tm)
4.11 Ed's Home(410)730-2917 DS / (301)854-3076 HST
------------------------------------------------------------------------
Echo Flag : Permanent: N Export: N Personal Read: N
BBS: ESCMAIL Conference: 4dos Imported: 6/27/1992
To: RUPA SCHOMAKER Num: 1201 Date: 6/25/1992
From: MICHEL LABELLE Re: Time: 6:25 am
Subj: secondary shell hist Prvt: N Read: N
Le <06-20-92 21:00>, Rupa Schomaker a ecrit a Michel Labelle <=-
RS> Howdy Michel!
MS> M >> How can I get the secondary shells history to add to the
MS> M >> primary.
RS> Hint: Take a look at the %@EXEC command.
YES!! I got it workin automaticly. Need I show you? ok.
=AUTOEXEC.BAT contains this line
if exist hist.txt del hist.txt /q
=VARS.TXT
PROMPT=%@exec[chk]$h$t$_$P $g$s
=AL.TXT
CHK=iff exist c:\hist.txt then history /f^history /r c:\hist.txt
^del c:\hist.txt /q
=4EXIT.BTM only line
history >> c:\hist.txt
=4START.BTM
if %_shell ne 0 goto fin
.
.
quit
:fin
if exist c:\hist.txt history /r c:\hist.txt
I feel good! ...da da da
... There's nothing wrong with DOS that 4DOS wouldn't fix.
___ Blue Wave/QWK v2.10
--- TosScan 1.00
* Origin: D.M.'s Connection =->*<-= (819)-778-0811: RPG Galore!!!
(1:163/503)
------------------------------------------------------------------------
Echo Flag : Permanent: N Export: N Personal Read: N
BBS: ESCMAIL Conference: 4dos Imported: 6/27/1992
To: DON HANCOCK Num: 1189 Date: 6/22/1992
From: FABIO FERRERO Re: Time: 5:13 pm
Subj: Suggestion For Mkdird Prvt: N Read: N
Sunday June 14 1992, Don Hancock wrote to Bill Hayles:
>> MH creates \DOWN\THE\GARDEN\PATH even when the intermediate directories
>> MH DOWN, THE, and GARDEN don't already exist?
BH>> What a good idea!
Try this btm:
---mktree.btm---
setlocal
if %# == 0 (
echo Usage : MKTREE [d:]pathname
quit
)
set tmp=%1
if "%@substr[%tmp,1,1]" == ":" (
cdd %@substr[%tmp,0,2] >& NUL
if %_? NE 0 (
echo Invalid drive %@substr[%tmp,0,2]
quit
)
set tmp=%@substr[%tmp,2]
)
if "%@substr[%tmp,0,1]" == "\" (
cd \
set tmp=%@substr[%tmp,1]
)
:repeat
set p=%@index[%tmp,\]
if %p == -1 goto :last
md %@substr[%tmp,0,%p] >& NUL
cd %@substr[%tmp,0,%p] >& NUL
if %_? NE 0 (
echo Error creating %@substr[%tmp,0,%p]
quit
)
set tmp=%@substr[%tmp,%@eval[%p+1]]
goto :repeat
:last
md %tmp >& NUL
---end_cut---
it create all directories. i.e.
MKTREE \foo\temp1\minnie
create (if doesn't exist) \foo, temp1, minnie
if \foo already exist, create only temp1, minnie, etc.
Fabio
--- GoldEditor
* Origin: 4DOS ...simply the best!!! (2:332/407.2001)
------------------------------------------------------------------------
Echo Flag : Permanent: N Export: N Personal Read: N
BBS: ESCMAIL Conference: 4dos Imported: 6/28/1992
To: TOM HALL Num: 1229 Date: 6/24/1992
From: JOHN THOMPSON Re: Time: 2:37 pm
Subj: Eliminating Duplicate Ent Prvt: N Read: N
TH> I'm almost positive that I saw a solution done entirely in a 4DOS .BTM
TH> file -- or is it not possible to eliminate duplicate entries using 4DOS
TH> alone?
Is this what you were thinking of?
rem *** Batch To Memory (4DOS) program to ***
rem *** compact the history in memory. ***
rem
history > C:\__HIST.TMP
compact C:\__HIST.TMP
history /f
history /r C:\__HIST.TMP
del /q C:\__HIST.TMP
* KingQWK 1.05 # 39 * John.Thompson@f631.n139.z1.fidonet.org
--- SuperQWK 1.16-B (Reg)
* Origin: APPLEGATE; "You got the right one baby, UH HUH!" (1:139/631)
------------------------------------------------------------------------
Echo Flag : Y Permanent: N Export: N Personal Read: N
BBS: ASTRIX Conference: 4DOS Imported: 6/29/1992
To: ERIK JACKLEY Num: 13465 Date: 6/28/1992
From: KEN HAVERLY Re: 0 Time: 12:21 pm
Subj: ansi... Prvt: N Read: N
> Anybody get my message last week??
No.
> Well I just wanna know. How do you assign Alt-., (that's Alt-<period>),
> to be a "*"??
After ANSI is loaded (like in your autoexec.bat) input a line that says:
echo e[0;52;42p
If it doesn't make it through the net, the character before the e is a
Control-X (looks like an up-arrow)...
---
■ PQ-Under-Trial 2.15 ■
PCRelay:CHANNEL -> #15 RelayNet (tm)
PCRelay:DCINFO -> #16 MetroLink International Network
4.10 DC Info Exchange MetroLink International Hub
------------------------------------------------------------------------
Echo Flag : Y Permanent: N Export: N Personal Read: N
BBS: ASTRIX Conference: 4DOS Imported: 6/29/1992
To: JOHAN SELAND Num: 13444 Date: 6/28/1992
From: DENNIS MCCUNNEY Re: 0 Time: 3:15 am
Subj: INVERT COLORS Prvt: N Read: N
JS> I was wondering if it was possible to have bright colors in the
JS> background? Do I need a new ansi driver for this, or what?
Try this:
: BRIGHT.BAT - turn on bright background colors
@echo off
set monitor=
if '%1'=='' goto Bad
for %%V in (C M E c m e) do if %%V==%1 set monitor=%1
if '%monitor%'=='' goto Bad
echo A100 > d:\tempdbug.scr
goto label%monitor%
:labelC (for CGA)
echo MOV DX,3D8 >> d:\tempdbug.scr
goto CGAorMono
:labelM (for Monochrome)
echo MOV DX,3B8 >> d:\tempdbug.scr
:CGAorMono (for CGA and Monochrome)
if '%2'=='' echo MOV AL,9 >> d:\tempdbug.scr
if not '%2'=='' echo MOV AL,29 >> d:\tempdbug.scr
echo OUT DX,AL >> d:\tempdbug.scr
goto finish
:labelE (for EGA)
if '%2'=='' echo MOV BL,0 >> d:\tempdbug.scr
if not '%2'=='' echo MOV BL,1 >> d:\tempdbug.scr
echo MOV AX,1003 >> d:\tempdbug.scr
echo INT 10 >> d:\tempdbug.scr
:finish (for any monitor)
echo RET >> d:\tempdbug.scr
echo. >> d:\tempdbug.scr
echo G >> d:\tempdbug.scr
echo Q >> d:\tempdbug.scr
debug < d:\tempdbug.scr > NUL
del /yq d:\tempdbug.scr
REM Delete the next two lines if you don't load ANSI.SYS
if '%2'=='' echo
This line has a bright background.
if not '%2'=='' echo Back to normal.
goto end
:bad
echo Call BRIGHT with a command line parameter of C, M, or E,
echo C for CGA, M for Monochrome, E for EGA/VGA. To turn
echo off bright background, add another parameter on the
echo command line, e.g. "BRIGHT E X".
:end
set monitor=
: BRIGHT.BAT ends here
PCRelay:RUNNINGB -> #3 RelayNet (tm)
4.11 Running Board 2126541349/DS/2125191791/HST/
PCRelay:DCINFO -> #16 MetroLink International Network
4.10 DC Info Exchange MetroLink International Hub
------------------------------------------------------------------------
Echo Flag : Y Permanent: N Export: N Personal Read: N
BBS: ASTRIX Conference: 4DOS Imported: 6/29/1992
To: JOHAN SELAND Num: 13461 Date: 6/27/1992
From: SERGE DELBONO Re: 0 Time: 8:13 am
Subj: INVERT COLORS Prvt: N Read: N
Dear Johan Seland :
On Wednesday, June 24, 1992, you wrote to All Users, speaking about
"INVERT
COLORS":
JS>I was wondering if it was possible to have bright colors in the
JS>background? Do I need a new ansi driver for this, or what?
You need to disable blinking (in the video bios) and use the blinking
attribut for bright background.
How to disable blinking ?
Use Int 10h, function 10h, subfonction 03h : (don't run with old CGA)
to create a little program "noblink.com", use debug :
c:\>debug
-a
xxxx:0100 mov Ax,1003
xxxx:0103 mov bl,0
xxxx:0105 int 10h
xxxx:0107 ret
xxxx:0108
-n noblink.com
-rcx
CX 0000
:8
-w
Writing 00008 bytes
-q
c:\>
Make a little testing batch :
@echo off
noblink
color blink red on blue
echo This is red on bright blue
color bright blink white on yellow
echo this is bright white on yellow
You can reenable blinking with a "mode co80".
<
_>erge on Friday, June 26, 1992. MakeHead 2.2a. by S.D.
* OLX 2.2 * void tag(){ /* no tag */ }
■ SFMail Qwk v3.0
PCRelay:ALF -> #949 RelayNet (tm)
4.11 ∞ ALF BBS ∞ Versailles FRANCE ≡ 33-1-39504698
PCRelay:DCINFO -> #16 MetroLink International Network
4.10 DC Info Exchange MetroLink International Hub
------------------------------------------------------------------------
Echo Flag : Y Permanent: N Export: N Personal Read: N
BBS: ASTRIX Conference: 4DOS Imported: 6/29/1992
To: JOHN DURSO Num: 13395 Date: 6/22/1992
From: MIKE HANEWINCKEL Re: 0 Time: 7:34 pm
Subj: UU FOR LCD.COM Prvt: N Read: N
Well l, John they tell me that UU is not the way to go and XX is. So I will
send it once more, the XX code for LCD.COM...
-------------------------------------------------------------------------
section 1 of xxencode 5.12 of file lcd.com by R.E.M.
begin 644 lcd.com
hi0Aaiac5CwFnNsj29IE17T1zWzWtcU0yT+5wwuK9q922oyiAqEDNInDPIwgB
h+J-9H2ZIFG-1Pr-m9W+lCHYl63-9Jo3GFG-7PaAi623gP0-GOKRcR5AUIaJn
hNL7qNKFCPrEUNKtjRKRc64pZPKxmSGGs++auLk5B6QoUYDq9y2xDjfs0+z89
hmh5dwuLwVzR4Ffw++OqJiV++un8EfNKm2CgvfNKm2CgwfNKm2Ch-fNKm2ChX
hfNKm2ChYfNKm2ChZfNKm2ChafNKm2566dB5hGbHoQzUnmHDPoSp8R9zFox5h
hGbGyoRC3qrELoSp8R9bFos1v-b69oSp8REGhZP6EoRAiWcwQ+M1t0bEuAxi1
hyE7o7h5hGbGLQVzFvIdoZh5HoSp8R7LFox5hGbGIoRC+yk7n5Wu8jmk-f6fM
hJcjr8zDnd3vfW8k0m61J+1nzRPnfAx5hGbI2fNKm2B5HUDg6Qh9FvIdp-8qJ
hgV1Fos1v3r90oSp8REGhZP6EoRC-sxw+Vhzfh1D+-fg++JC9q6j6Wx09u6jk
hWzX9+k+00UE3++++++++-UQ60E20+++1-+I4+++++++++++50+Y80kkBY+++
huNQ-1I77FoJ1G2wg63NZ++-mQmsUAGsk64BjQ5ZmOKRc++-o647t636iHGtL
hOKlnPqsUI8VVPaEUEWBHOKoB+U+kAHYsBUcBJLBVNqIuBokUFW-hNLAF83IU
h9oN052VGPWU87lAb64ZnEVGc65BoKatb64xa18eeLoUDG+GmQKVVQa3XR64Q
hZJR4NkOxU1k+42paPr6UR4V8Y-E6NKRmPrJHiGIdMW-f+McD84FZNa3pP5Fb
hR4xGRVVg5agWcJ0uP4ZYK4YiNM1GimwUqm+d9Vc3++2+ZE4yU+0g0g-p+QCg
hD+po26+7D0xpxumWy+2B+u9t+7+-jWA1jzc-is6+9cc50XUH5W-o4X9YoS+-
h++7K+z0t2+1nd3t1UTiA+2+-TBio+XDhjWw1xPY8++++gs02596UREe2L+3o
h1f9QutU+0d0mrkk0ghjB6R19++0+ys-prcD42C9LFIK1zEtwCc16kkWPTc4Z
hUM4xaM3y3z+EzxjzzwDbzm9l2++qTk2y5+WWEl+651s-1lUwDCRFTk2w4+UF
hJHx0DE+ErGMY4+jz+STg2wC-tkYID4Pc8270NXk+6ACNjN+jZAAU1kQB4G7a
hptMV++kMBlFV21wnDn+-Q4uewC+ETqA0s8M-NyTaM5oMqzU-cXnPA2-UQ5lz
hTBk+Q4-+2+21-lxz5kRupEA-+A+gM4zbgXA--uj6MBg-Slg-2lEDDaAk51Nk
hBaU65+NXDU3KxBAn13+D4CzgXk+C++IuQ+2A-jw41+3A44VEA5wk4+8nM1fc
h+Lw-1mFazqMY+C0T1kUQ51syTuKVWkwQ+9zPSEM-0+25mZsD6U216CmP1rwW
h-0wyG88w+HM7+Hs+Bp7VYdFc3WZ7VUwyJJl++EF-EJ+u1V+-M+BE10Uj20+U
h++AEsVUc5EE0+U+1-+1WGGdou-EeGECVRkU60+SuzfMk+Ezz0RSU3C-P05B+
hfw8+4HuPEE--vzuU+DudrH+y+E52tto02+EEdhsvEF+-+j-rrk2U2+3UTTNk
h+X+Q-G0yyk7+iU9j9jQA-F+DVWPC6-+6-+5vbgA1+Pgn4zA+M+2Sw2Bn233F
h1Y0ThkK+pF-SKxQELU5E+C-0+F-SE4ys+W+1A5JR22+-2+s-w23jK+Jk-c1c
hWmg2A8xCI1-+-N+yGIYB+E+2GEIORi--1T1kru+0c0-3FHs2-DS4+G+-E+PU
hfiw3g223M-+E1n6QIrPC+EU2+G1JBG6U+4---HOm++O+D012Mn+U3Xk+UDo0
h97ZD6+Gt7nE26+UI6Y2BQMXdzswAHbY74lwV+FyMgY+-5V0dp+9C5lETADI-
hc0+z+G1mEl+z6+M70-v1Gk6UM-s-RMo1+a+V+joisEAk2+2rT5+k6WEs7Bes
hZUMkj54X+E0VHoE1M8-bBm3x+G+So1xM+u17jeAk+FqUWE+S+e+yeSi+-U2U
h6EIOda+V-I0TBUtR+W+G1-6V-H+TIm2-+nwy0v6zABDEEV++i0+p-U+k0kE-
hcxYDCqs6150LcaA1Q-6SAq3UM43XDUM1YiZjNaM1+Hg0sPwA41mSp5xUnj1D
hD++w-XsUA6tS+V+k4+k12Dc89lk2A7Gzgq-a31lEnns0M3+029gWI+AUBX+Q
h11qV+Ft+X5+kC1870--UjLMP+V1cvgGz-6wLE+6ErX++TnAkDX+n0s+-Easv
h4rvMr5Q9GikqYby+bV-b++4kPzM-Y2Y029DDg++Ec6PN+Z+UtyE022+jDkB+
h9F28FCmREEARy-w+I-Vykw1+kq6Vw0skA5WWlz3nF79mkkvzhs606DleT47a
hPr6m-jAE1VjW+3sVq+wOQ+20NgCU2+7+v9AE+h+E-w21k4-iAnAvAt2G2EtX
hQvVESrxjNq-cLZlgP1s-XcIKL-+s+5k0NHLC4+Ax+Y499k-zM+Hs6WFz+kDg
hs-HcMqNgV4v1-UkT+PUr24TD5mFED0q-D+3+4nNgBViSRE3C1V9HWkkFF+60
h23KeLjE0+V1RRk607vqSjus-2DU12DUvbE+EBU5q9vo5Ujsq+l1nukMkxUMk
hBUBj9k2z-G+kbtvyyZfC+Ts1Ha0aiUI0y+L+5tOp-5sM-eGrEDw4A+HQofE+
hQBjpE+Ak5k+kKoSUBkD+Bn+zdqg1PXwk-01r-OZoo+vr-I+ByXQ16Dw+ADrT
hE10xihs26+24MDzSc+PU-N+zOnU1w-w+E9F-AkQUDxQp-I1z-7+M-XHwM+Ok
hSbxEzkA-+81pO-1k+k4xRms1+E2d+U5E11hiP4li+8+yMkdLTaA1M4+UMnR+
hMq+-+4acXUBh63+oolUkMk3HEo+yHvG4tU+-AXskA9y4EKwxng1+TVXJvg6E
hmluSqpY+2+uLGL0E5ayhans-+1EZExjP+461-dKr1zCzk2+cybZUT+Ak5+5U
hyIQ-o8BV2k-z+R9UMssX4jdj-jKaMF+AM0yOlF+C4lg6QhUE4BVScPCE914g
h+EoY-Eo+ZHU0nLce+FE2+OgK+BkDQ-gwv4kwoBXE8Klg+0dkq7yBRgU2Dnk-
3mkoA-jwA
+
end
sum -r/size 24414/3258 section (from "begin" to "end")
sum -r/size 57857/2345 entire input file
---------------------------------------------------------------
Hope THAT works,
Mike
---
■ SLMR 2·1a ■ c│_Σ/\ⁿ│_¡╔╗εss ¡s ⁿε»«┬ ╤° ¡▐\/▌p°Ssiß▐_Σ.
PCRelay:PUNKIN -> #284 RelayNet (tm)
------------------------------------------------------------------------
Echo Flag : Permanent: N Export: N Personal Read: N
BBS: ESCMAIL Conference: 4dos Imported: 6/29/1992
To: ALL Num: 1257 Date: 6/27/1992
From: DAVE DOCKUS Re: Time: 12:33 am
Subj: aliases Prvt: N Read: N
Hello All!
Someone posted an alias for selective copying files. I liked it so much that
I made a couple of simple changes for a selective move. Here's both of them.
My thanks to the original author.
Dave
Put them in your alias file just the wat they are written here. They work
great!
O/ cut here
----O\------------------------------------------------------------------------
SC=iff "%1" eq "" then^echos Where do you want these files copied to? ^ input
%%filename^select /o:e copy (*.*) %filename^unset
filename^else^select=/o:e copy (*.*) %1^endiff
SM=iff "%1" eq "" then^echos Where do you wamt these files MOVED to? ^ input
%%filename^select /o:e move (*.*) %filename^unset
filename^else^select=/o:e move (*.*) %1^endiff
O/ cut here
----O\------------------------------------------------------------------------
--- GoldED 2.40+
* Origin: "DOC'S" PLACE... (FidoNet 1:157/612.1)
------------------------------------------------------------------------
Echo Flag : Permanent: N Export: N Personal Read: N
BBS: ESCMAIL Conference: 4dos Imported: 6/29/1992
To: TOM HALL Num: 1259 Date: 6/27/1992
From: WILLIAM HUGHES Re: Time: 4:58 pm
Subj: Eliminating Duplicate Prvt: N Read: N
TH>I'm almost positive that I saw a solution done entirely in a 4DOS .BTM
>file -- or is it not possible to eliminate duplicate entries using 4DOS
>alone?
=== CUT HERE ===
:: ------------------------------------------------------------------
:: File : DDH.BTM
:: Purpose : Delete Duplicate entries from 4DOS History list
:: Parameters : None
:: Usage : DDH <enter>
:: Comments : Written in reply to a request by Tom Hall @1:342/1.
:: Does not require any external utility, except the
:: DOS SORT function.
:: Author : William Hughes @1:387/255
:: Date : 27 Jun 1992 - 16:15
:: Copyright : None
:: Warranty : Are you kidding? If it works, fine. If it doesn't
:: work, rewrite it. If it still doesn't work, try
:: something else. :-)
:: ------------------------------------------------------------------
setlocal
history > history.txt
sort < history.txt > history.srt
del history.txt
set OLN=%@line[history.srt,0]
set LN=1
:LOOPLABEL
set NLN=%@line[history.srt,%LN]
if "%NLN" NE "%OLN" echo %OLN >> history.new
set OLN=%NLN
if "%NLN"=="**EOF**" goto ENDIT
set LN=%@eval[%LN+1]
goto LOOPLABEL
:ENDIT
history /F
history /R history.new
del history.srt
del history.new
endlocal
=== CUT HERE ===
That should work...
Correction. I shelled out and tried it -- it _does_ work. At least, it
works on a 286 with MSDOS 5.0 & 4DOS 4.0B1. :-)
* SLMR 2.1a *
--- MsgToss 2.0b (r)
* Origin: Nul 512-615-NUL1 HST/V32b,615-NUL2, NUL3, 1.2Gig (1:387/255)
------------------------------------------------------------------------
Echo Flag : Permanent: N Export: N Personal Read: N
BBS: ESCMAIL Conference: 4dos Imported: 7/01/1992
To: YONG SENG Num: 147 Date: 6/29/1992
From: MORRIS TURPIN Re: Time: 5:28 pm
Subj: Alias Prvt: N Read: N
suggestion. Since the delete command in 4DOS ver 4.xx supports
sub-directories, why not try:
ZAP=del /qsyz %1\*.bak *.~*
This should go down to all sub-directory levels.
--- msged 2.07
* Origin: Ansi's Escape, Echo Point -- Ottawa, Ontario (1:163/140.3)
------------------------------------------------------------------------
Echo Flag : Permanent: N Export: N Personal Read: N
BBS: ESCMAIL Conference: 4dos Imported: 7/01/1992
To: JOERI GOLSTEYN Num: 120 Date: 6/26/1992
From: OLIVIER VANBIERVLIET Re: Time: 11:09 am
Subj: Aliases Prvt: N Read: N
JG:Hello All!
Hello Joeri!
JG:I think I have an idea.. what about everybody writing a message in this
area
JG:with there best aliases. So we can make a list of it...
JG:So everybody in this area can optimize there system... Since I used 4DOS
I
JG:saved LOTS of time.
I'm not going to comment your aliases, since I haven't tested them yet,
but I can give you a few of my aliases (they're all simple ones)
SUPER=superpck /o+ /d+ /q+ /w+ /h+ /t+ /s:2048 /em
{enabling the Superpckwik disk cache}
chrono=`timer ^ %& ^ timer`
{very usefull for programmers: if you want to know if
your fresh compiled program is faster than the older
version (just an example)
just type: chrono <program>
}
EBAT=EDIT C:\AUTOEXEC.BAT
ECON=EDIT C:\CONFIG.SYS
CD=F:\*
{replaces the CD command with my *cd utility, a fuzzy
dirchanger}
RD=F:\* RD
{idem for the RD command}
MD=F:\* MD
{idem for the MD command}
S=SELECT (*.COM;*.EXE;*.BAT;*.BTM) DIR
{shows you the executables to run}
A=CDD A:\
B=CDD B:\
C=CDD C:\
TYPE=LIST
{If you have the bad habit to use the TYPE command :-)}
Friendly greetings,
Olivier Vanbiervliet
Bruges, Belgium
---
* Origin: Breydel Mail BBS Brugge +32/50-320421 (2:291/903)
------------------------------------------------------------------------
Echo Flag : Permanent: N Export: N Personal Read: N
BBS: ESCMAIL Conference: 4dos Imported: 7/01/1992
To: OLIVIER VANBIERVLIET Num: 122 Date: 6/28/1992
From: MORRIS TURPIN Re: Time: 3:43 pm
Subj: Aliases Prvt: N Read: N
In a message dated Jun 26 at 11:09, Olivier Vanbiervliet of 2:291/903
wrote to Joeri Golsteyn:
OV> EBAT=EDIT C:\AUTOEXEC.BAT
OV> ECON=EDIT C:\CONFIG.SYS
Or, to make it even easier, how about:
@ALT-I=ne c:\4dos4\4dos.inir
@ALT-A=ne c:\autoexec.batr
@ALT-C=ne c:\config.sysr
where "ne" is Norton Editor. Change the "ne" to the editor of your choice.
--- msged 2.07
* Origin: Ansi's Escape, Echo Point -- Ottawa, Ontario (1:163/140.3)
------------------------------------------------------------------------
Echo Flag : Permanent: N Export: N Personal Read: N
BBS: ESCMAIL Conference: 4dos Imported: 7/01/1992
To: TOM HALL Num: 143 Date: 6/29/1992
From: DAVE MUNHOLLON Re: Time: 4:50 pm
Subj: Eliminating Duplicate Ent Prvt: N Read: N
Hello Tom!
Saturday June 27 1992, Tom Hall writes to Tony Dunlap:
TH> How do you get 4DOS to read a file, know when EOF is reached, etc.? Is
TH> there a way to get 4DOS to read a file line by line? In other words,
TH> how do you control for the value of "n" in the @line[temp1.hst,n]
TH> expression?
Check this little batch out. It should help answer your questions.
whatever.bat
------------
setlocal
set n=0
:start
REM increment variable N
set n=%@eval[%n+1]
REM set variable for evaluation
set a=%@line[temp1.hst,%n]
REM test for END OF FILE and quit if so
if %a=**EOF** quit
goto start
------------
Hope that helps explain it.
-=*Dave
--- GoldED 2.40
* Origin: Jackpot!! Colorado Springs, CO (719) 570-6118 (1:128/86)
------------------------------------------------------------------------
Echo Flag : Permanent: N Export: N Personal Read: N
BBS: ESCMAIL Conference: 4dos Imported: 7/01/1992
To: ALL Num: 108 Date: 6/25/1992
From: MORRIS TURPIN Re: Time: 9:37 pm
Subj: One-Pass XCOPY btm Prvt: N Read: N
I just threw together a .btm file to copy the contents on one disk to
another in one pass. It uses xcopy to copy all files to my RAMdisk, d:,
prompts the user to remove the source disk and insert the target disk, then
copies the files back to the target, including the volume name from the
source. This file is useful where the size of the files to be copied
exceeds the available RAM. Donated to the public domain. Don't forget to
change the interim drive and directory (d:\xc below) to suit your own
needs.
*****************************************************************
XC.BTM
setlocal
iff "%1" eq "" then
inkey /k"ab" specify drive a: or b: %%drv
else
set drv=%@substr[%1,0,1]
endiff
set floppy=%drv%:
:CONTINUE
echo.
echo Insert Source disk into Drive %@upper[%floppy%]
pause
if not isdir d:\xc md d:\xc
xcopy %floppy% d:\xc /s /e
echo %@label[%floppy%] > d:\label.txt
echo.
echo Remove Source disk and Insert Target Disk
pause
xcopy d:\xc %floppy% /s /e
label %floppy% < d:\label.txt
del /sxyzq d:\xc\*.* d:\label.txt
set more=
inkey Copy another? (y,N) %%more
if "%more" eq "y" goto CONTINUE
rd d:\xc
*******************************************************************
--- msged 2.07
* Origin: Ansi's Escape, Echo Point -- Ottawa, Ontario (1:163/140.3)
------------------------------------------------------------------------
Echo Flag : Y Permanent: N Export: N Personal Read: N
BBS: ASTRIX Conference: 4DOS Imported: 7/02/1992
To: JOHN DURSO Num: 13528 Date: 6/29/1992
From: MARK D. SHADLEY Re: 0 Time: 1:42 pm
Subj: AUTO IN START UP Prvt: N Read: N
JD│ OK, how would I get it to BEEP at a higher frquency with each loop?
JD│ Say I wanted it to beep freq 20 for 6/18 of second first loop, freq
JD│ 25 7/18 second in second loop, etc in other words increase freq by
JD│ 5 and duration by 1/18 of sec in each loop .i.e
JD│ Beep 20 6 Loop 1
JD│ beep 25 7 2
JD│ beep 30 8 3
JD│ beep 35 9 etc 4
Create variables at the top of the file, ie:
set freq=20
set dura=6
Then, at the end of the loop:
set freq=%#eval[%freq+5]
set dura=%#eval[%dura+1]
goto loop
JD│ How about, if I wanted to do this every X number of loops (lets say
JD│ every 3rd loop) then how would I go about it?
JD│ Beep 20 6 Loop 1
JD│ beep 25 7 4
JD│ beep 30 8 7
JD│ beep 35 9 etc 10
Create variables at the top of the file, ie:
set freq=20
set dura=6
set looper=1
Then, at the end of the loop:
set looper=%#eval[%looper+1]
if %looper eq 4 .or. %looper eq 7 .or. %looper eq 10 (
set freq=%#eval[%freq+5]
set dura=%#eval[%dura+1]
)
goto loop
I think this will work.
Mark ->NSTTZ
---
■ OLX 2.1 TD ■ Earthquakes are Earth's way of saying, WAKE UP !!!!!!!!!!
PCRelay:NSTTZ -> #363 RelayNet (tm)
------------------------------------------------------------------------
Echo Flag : Permanent: N Export: N Personal Read: N
BBS: ESCMAIL Conference: 4dos Imported: 7/02/1992
To: OLIVIER VANBIERVLIET Num: 151 Date: 6/29/1992
From: MICHEL LABELLE Re: Time: 6:29 am
Subj: Aliases Prvt: N Read: N
Le <06-26-92 11:09>, Olivier Vanbiervliet a ecrit a Joeri Golsteyn <=-
OV> JG:Hello All!
OV> Hello Joeri!
OV> JG:I think I have an idea.. what about everybody writing a
OV> message in this area
OV> JG:with there best aliases. So we can make a list of it...
.=..\
{back 1 dir}
-=cdd -
{previous dir}
DIR=*DIR/CJou
ZAP=del /sxyz
DISP=*list /s
{for when I compound |}
F2=CALL 50^NCD C:
QD=c:\utilite\qd.exe
NCD=c:\norton\ncd.exe
LIST=c:\utilite\list.exe
LH*ARC=c:\utilite\lharc.exe %1 -t
EACH=arj m -sjt -e %@name[%1] %1
{sometimes with select.
it arj's then tests then
deletes the file}
CHK=iff exist c:\hist.txt then history /f^history /r c:\hist.txt
^del c:\hist.txt /q
{new!
with 4exit and 4start & PROMPT=%@exec[chk]$h$t$_$P $g$s
the primary shell inherits the history from secondary shells}
If you need an explanation for any of these. I'll be more than
happy to explain. I love getting mail.
PS: I got hotkeys pretty well installed.
Later.
... What does DOS miss = 4 b4 it.
___ Blue Wave/QWK v2.10
--- TosScan 1.00
* Origin: D.M.'s Connection =->*<-= (819)-778-0811: RPG Galore!!!
(1:163/503)
------------------------------------------------------------------------
Echo Flag : Permanent: N Export: N Personal Read: N
BBS: ESCMAIL Conference: 4dos Imported: 7/02/1992
To: OLIVIER VANBIERVLIET Num: 171 Date: 6/30/1992
From: WILLIAM HUGHES Re: Time: 8:52 am
Subj: Aliases Prvt: N Read: N
OV>I'm not going to comment your aliases, since I haven't tested them yet,
>but I can give you a few of my aliases (they're all simple ones)
And a few more...
: Change drive/directory with wide directory display
A cdd A:\%1 ^ cls ^ dir/wkm4
B cdd B:\%1 ^ cls ^ dir/wkm4
. . . and so forth for all drives
: Quick math
CAL echo %@eval[%&]
: Exit DOS Shell
X exit
: Update aliases
UA unalias * ^ alias /r c:\system\4dos.40\alias.lst
: Formfeed printer
: Parallel
FF echo %@char[12] > prn
: Serial
FFC echo %@char[12] > com2
: Linefeed printer
: Parallel
LF echo %@char[13] > prn
: Serial
LFC echo %@char[13] > com2
* SLMR 2.1a *
--- MsgToss 2.0b (r)
* Origin: Nul 512-615-NUL1 HST/V32b,615-NUL2, NUL3, 1.2Gig (1:387/255)
------------------------------------------------------------------------
Echo Flag : Permanent: N Export: N Personal Read: N
BBS: ESCMAIL Conference: 4dos Imported: 7/02/1992
To: TOM HALL Num: 158 Date: 6/29/1992
From: TONY DUNLAP Re: Time: 10:14 pm
Subj: Eliminating Duplicate Ent Prvt: N Read: N
> TD> then using @line[temp1.hst,n], take the first line and
> TD> see if it equals any of the lines after it. If it
> How do you get 4DOS to read a file, know when EOF is reached, etc.? Is
> there a way to get 4DOS to read a file line by line? In other words,
> how do you control for the value of "n" in the @line[temp1.hst,n]
> expression?
Here ya go. It could probably use some optimizing (I shelled out of this
message to write it) but it will work (pretty slow though).
BTW, Sorting would also be possible using only 4dos functions but the BTM
would be extremely slow due to the number of times you would have to read
through the file comparing %@ASCII. I'll let someone else tackle that one.
Unique.btm
setlocal
history>hist1.lst
set X=0
set Z=%@LINES[hist1.lst]
:loopX
set Y=%@EVAL[%X+1]
set add=Y
:loopY
:: FROM here....
if "%@LINE[hist1.lst,%X]%" EQ "%@LINE[hist1.lst,%Y]%" (set add=N ^ goto
nextX)
:: TO here should be on one line
if %Y EQ %Z goto nextX
set Y=%@EVAL[%Y+1]
goto loopY
:nextX
if %add EQ Y echo %@LINE[hist1.lst,%X]>>hist2.lst
set X=%@EVAL[%X+1]
if %X NE %Z goto loopX
::if any line equaled the last line, it wouldn't have
::been copied, thus, the last line must be unique. so...
echo %@LINE[hist1.lst,%X]>>hist2.lst
::then finishing up...
history /f
history /r hist2.lst
erase hist1.lst
erase hist2.lst
::END
LAter
---
* Origin: DISCOVER (1:2220/30.1)
------------------------------------------------------------------------
Echo Flag : Y Permanent: N Export: N Personal Read: N
BBS: ASTRIX Conference: 4DOS Imported: 7/07/1992
To: ALL Num: 13543 Date: 6/29/1992
From: JOAO ALVES Re: 0 Time: 10:52 pm
Subj: GREAT BAT for 4DOS (1/3) Prvt: N Read: N
To create this file, cut the parts join them in file 4INFO15.SCR
and type the command : DEBUG < 4INFO15.SCR
<----------- Starts Here (1/3)
N4INFO15.LZH
E0100 22 7F 2D 6C 68 35 2D A8 0B 00 00 6C 25 00 00 40
E0110 0E E1 18 20 01 09 34 49 4E 46 4F 2E 42 41 54 43
E0120 72 4D 00 00 08 CB 7B 9B D9 B7 22 D6 CC 7A 95 C9
E0130 30 BE 2A 18 5B D6 59 63 72 59 65 89 44 59 1C 72
E0140 EC EB 64 71 48 E4 DD DD AA 2D AE C9 F5 91 AD 71
E0150 B9 CD B7 6E D3 18 F0 2E 0B 43 1B 81 02 30 CC 03
E0160 13 B8 F0 1D CB DF 7E F9 B6 E4 96 47 7B 4E DE DE
E0170 B7 BB B9 2F FB FE 04 18 02 04 81 09 18 9C 84 B9
E0180 18 02 03 08 F0 00 1D BD EE B2 36 DB 8F 85 44 FC
E0190 0A 91 5A D5 B5 F5 8D E3 3A AA B7 09 5E CD 65 49
E01A0 B8 4E 94 65 EF 07 EA A7 59 3D 96 FE EB 64 A6 CF
E01B0 49 5D D7 D6 A2 4F 77 F2 FF 2F BD BF 7F 71 ED 88
E01C0 3F D0 45 9B 22 78 D7 6B 11 48 9B 6C B6 E3 A4 A2
E01D0 4D 3F 1B 1E 0F 3B 0D B4 D8 7E BD 01 FC 7D 74 7A
E01E0 DF 40 83 FF 37 E7 FD BF 7E 88 FC BF 08 03 EA 32
E01F0 BC A0 FC 3F 28 9C 4E 16 54 00 FF 41 39 0B D0 F1
E0200 3C 2C 35 85 BE A2 4B CD F1 39 18 68 A6 2B 67 4D
E0210 97 2E 76 F0 92 84 9D BE 1E 5C 10 13 FD 60 0F B6
E0220 5C 32 89 61 7C 51 83 D6 6F 29 2D B1 8B 1E A0 A4
E0230 60 FA 1C 12 E5 F0 4D 30 3F 83 78 3C A0 07 F8 CA
E0240 CC A2 78 71 B1 2F 39 DF E8 25 86 30 FC 80 F4 51
E0250 9F 2E 5A 29 4C 0D 5A 29 24 3E 53 CC 0F D5 F4 00
E0260 FA 8D BC F3 79 3B 42 51 83 E6 81 3E 8C E9 A2 0F
E0270 9D BC 3E 5C 06 07 AD 8C AE 14 8B 8F FD 97 5B 88
E0280 1E 9B 6D 61 2B 4E 97 0F AC 9F A1 40 00 9C 09 08
E0290 3F 82 70 F9 50 30 3D EC 60 09 79 E7 18 E7 7D E0
E02A0 D4 1C 1F F9 3F 73 3A 7E 38 FC BF 00 03 FA 01 91
E02B0 03 FE 5C 4E 36 FB 58 68 C4 77 F1 8B 73 AF 83 CD
E02C0 C5 2E 51 2B 71 07 A5 60 D2 0F A5 41 70 8A 8D B9
E02D0 84 AE 4A 25 A5 03 D2 D1 5C C0 56 9E 96 62 7E A3
E02E0 8C 0E 7B 86 45 11 A3 FB 4B 67 D4 2C C3 CC 94 35
E02F0 FF 7C FF 02 75 BA E9 48 DB 4C F5 92 68 32 D3 CF
E0300 14 1B C4 EB 7E A3 26 07 B2 C3 5E 6C EA 3C 4B 68
E0310 1C 64 3C 7A DB 7C 9D 4C 32 C9 1A 28 25 1C 80 54
E0320 90 AD 74 B0 E3 6D 64 01 79 1D CA BE 00 17 7C 4B
E0330 7F F1 7F 37 BF F7 07 71 D9 00 D2 7B 9A FA D5 EB
E0340 13 61 0E 12 F4 AE CF 2A 5B 69 5F D8 25 2A 44 D8
E0350 9D B0 4E 25 56 54 96 4B E7 7A 08 2C AD 8D 87 41
E0360 31 BD 83 19 3A 18 64 A4 7D D0 DF F4 3E D6 07 98
E0370 6D A0 35 FA 0F 07 BB D3 A5 CC DB 26 06 F2 64 5D
E0380 AC 24 CA E3 78 0A EB A0 7A 0F AB AC 35 80 B0 03
E0390 85 02 03 33 B5 F6 9E 23 8F B4 D3 0D 62 23 0F 1B
E03A0 17 02 E3 88 01 E0 C0 97 AF AC 62 1D 46 B0 81 F2
E03B0 72 34 C5 87 96 75 E5 2D 81 48 B1 36 33 15 49 76
E03C0 95 66 54 C0 21 74 13 93 D8 CE 51 F6 93 B7 8A E1
E03D0 00 B8 15 3B 8C 18 2C AE 76 8E 12 30 E5 0F 2A 96
E03E0 6F 13 89 42 25 3A 61 C6 EA F9 A0 1A 58 61 A6 32
E03F0 3E D0 6C B4 AC B0 82 07 B4 FB 0E 02 EB A4 3B 69
E0400 46 39 5A 07 92 C6 BF 49 4E 11 97 00 0F C6 19 39
E0410 1F 75 E2 02 29 70 AB 82 03 0D 5B 9A 18 79 86 8E
E0420 9F C4 C9 97 5E CD 72 3C D9 17 80 B5 20 2C 57 CB
E0430 08 32 BE 80 18 34 99 45 52 E8 27 98 FB 85 1D FE
E0440 07 DC 70 7D CD BE 26 56 5F 74 88 70 A9 7A 9F 27
E0450 28 15 FB 86 28 6F C6 84 01 04 D1 13 D6 E2 8B 12
E0460 B5 8A 48 70 E1 6D DC 85 C9 CB 52 F8 32 E8 BF 36
E0470 CC 58 5C 77 F8 F6 B5 F5 9D 2B CC B7 81 76 4F B2
E0480 00 65 28 03 A6 0C ED A1 C3 C8 A5 9E 54 2B 58 42
E0490 FC 3E 69 D8 AB C9 5E CA 88 5F 01 B3 2D AF 87 9D
E04A0 EC 84 55 A8 17 DA 27 6A 3F B7 B0 49 6A DB 97 1E
E04B0 06 EF 6E 0F 82 4C 1C 70 31 77 80 AC E5 D7 D6 4F
E04C0 92 E0 13 D8 1C CA FB C4 98 1F C3 00 F0 8C F0 0A
E04D0 C6 49 59 A6 9B 75 E6 19 61 EE B2 7B DA 5D 03 67
E04E0 06 D0 44 A9 92 1A 08 2E 91 C2 BA 57 3A 41 74 A3
E04F0 C0 11 0C D9 BC 33 81 F7 88 8E E7 B2 FB 5B 9C 09
E0500 6D 1D 00 57 A5 CD EE CC 41 08 DF 57 DD DE 8B D9
E0510 19 81 E5 ED F3 40 97 29 7E 9E EF 8F A3 B3 4B EF
E0520 77 7D D8 8C 77 53 91 07 60 81 07 45 1E 1D 7D 66
E0530 3A 3A 01 A5 2C 2B 66 BA CA DB 1D 2A 6A F2 07 80
E0540 47 28 14 01 08 23 4A 9C 74 82 6C 90 FA D6 E2 A5
E0550 02 37 8B 3D 53 60 84 BB 75 F5 8A CB A5 D1 B7 5F
E0560 F5 ED DA C2 04 4E BE B6 17 17 EA E7 6F CE 44 41
E0570 4F 24 89 26 F0 11 22 21 51 54 01 F6 43 F7 C6 80
E0580 B8 6B 26 F1 89 64 A4 3A 2A DC 51 E8 AD 44 FD 03
E0590 F5 18 4E 34 ED 5D 13 7D 29 93 22 37 62 00 A3 43
E05A0 B0 05 64 B8 09 79 23 40 86 F4 D9 91 9A DE BD 85
E05B0 76 9E 2B 24 A1 30 C2 68 CC E8 04 13 75 14 49 B7
E05C0 97 31 49 44 96 5B 68 A6 57 B6 55 58 61 DF 66 AD
E05D0 A3 AB 29 9B 04 88 07 F1 0C C3 5D 10 AE 76 A1 5D
E05E0 EA F5 54 08 92 75 E5 29 90 70 3F 5D DB 56 94 B6
E05F0 0F 1C 6C 9B E0 F8 1E 5B 6A F8 6E 13 CE 28 91 5E
E0600 4B B6 2C DC DA 88 1D BD A8 1C 1C 73 D8 78 0B 63
E0610 84 33 83 A0 64 4B F1 6E E7 F6 EE C6 3D 16 85 CD
E0620 C2 0F E2 7B 67 3D 2C 2B 76 E2 9A 8F 69 F2 1E DE
E0630 31 E5 AE 2C 4F 8C D0 E4 DF 06 29 08 CE F6 31 34
E0640 44 15 09 08 25 C2 2A 56 0A 13 87 EB 3A 0D 08 44
E0650 45 AD E0 D5 AD 52 C5 C8 F5 86 3B 03 07 44 3E 87
E0660 DE 08 7B 9C 06 8C CD 40 4F 14 80 4F 16 90 27 8A
E0670 40 22 32 11 3E 77 81 95 21 03 98 89 F1 2C A5 9A
E0680 AA 55 EC 23 A1 C4 38 3A 34 4C 8A 5F 1A 27 46 46
E0690 A2 AA DB A3 32 87 42 7D E2 2E F2 8C 47 0D F9 09
E06A0 C5 13 64 65 1F 48 F3 97 CC 5A C8 CF 76 1F 65 E6
E06B0 1E 5D DF 30 4A B6 07 88 15 D8 00 7B C2 DB D2 3C
E06C0 48 00 51 9F A4 87 2B BE D5 E6 0B D5 1B C2 1A 73
<<MESSAGE TOO LONG -- SOME LINES WERE DELETED>>
PCRelay:DCINFO -> #16 MetroLink International Network
4.10 DC Info Exchange MetroLink International Hub
------------------------------------------------------------------------
Echo Flag : Y Permanent: N Export: N Personal Read: N
BBS: ASTRIX Conference: 4DOS Imported: 7/07/1992
To: ALL Num: 13544 Date: 6/29/1992
From: JOAO ALVES Re: 0 Time: 10:53 pm
Subj: GREAT BAT for 4DOS (2/3) Prvt: N Read: N
From previous Message (2/3)
------
E06D0 1E 1A F6 4E 01 EE DD 0B 2F 76 6B 91 EF D7 1F 99
E06E0 D3 A4 4A 5F 9F 56 DD 2F 97 6E 0F 3B B8 13 2C 0E
E06F0 A2 B8 02 41 D6 1B C3 21 51 37 E7 00 DB 2A EC EE
E0700 DC 78 38 56 AE E6 19 08 39 9D C4 1A B7 37 42 20
E0710 E1 C3 4C 55 35 46 FC F2 42 09 19 1F 22 B3 85 2C
E0720 3C 07 C1 70 04 E6 D0 3B 23 C7 B3 9F FA B6 74 F9
E0730 2B D3 B8 66 C8 F2 9F CB 4E D7 7F B6 1D B8 4B 69
E0740 7C 50 C1 FC 20 C9 55 4B 54 F8 94 8F 65 23 D3 72
E0750 2E EB D5 5C 63 A4 BA 61 65 C9 4E E2 D5 6B DC E3
E0760 8E 0C 88 C8 F6 94 EC DC AE 4B 8F E5 CA DB 8F 6A
E0770 83 18 E5 EA 83 10 00 75 24 EF 1E 63 3D 29 1F 41
E0780 66 32 14 9F 64 95 57 78 A6 33 D6 AF 61 49 46 71
E0790 CF 08 FE 69 AC A7 EC 9A B8 76 B7 D3 31 F3 4C 37
E07A0 44 C7 F3 4C C6 D2 94 85 21 E6 9A AD A5 8D A3 34
E07B0 E7 FF 7C DE C4 13 DA 1B CF 82 B4 78 3D B3 9F 08
E07C0 25 EF 93 7F BE 73 E6 40 5C 36 D4 A7 57 C6 0A E6
E07D0 A2 AA AC 87 0A 7E 0A 76 F9 77 A8 5F BE 77 8D D4
E07E0 FF C4 DE D2 9A B9 89 CD 51 B6 DE 21 D8 2C 53 60
E07F0 81 E8 86 34 25 2D 5A 50 06 E3 0E 43 94 B0 72 79
E0800 16 2C 59 55 87 93 F5 59 5C 71 65 5D 83 28 24 E3
E0810 57 B3 25 3A 41 27 39 D3 74 4F B6 76 A6 00 6D E5
E0820 D9 25 C3 73 EE 16 9D CE 24 CD 18 CD 03 BB 17 EC
E0830 6D 66 0A 4D 90 28 67 5B 38 4E 20 A5 6B 6A 29 DA
E0840 13 83 17 50 4A 74 81 2B A3 DF 13 48 4A 03 C7 48
E0850 4A 14 0F 08 4B 13 6E BF CF 0F 71 49 38 7F A3 20
E0860 A7 42 A4 B2 D9 BA 5C 1B DA 36 3A FA 1C 46 D9 70
E0870 FF 67 11 0A 39 7F F9 C4 68 0B 88 84 66 77 FF FB
E0880 95 95 02 6F 4C 91 B9 D3 83 AC B4 4D D5 14 3D 0D
E0890 0F 03 B7 9C 2D E2 38 5A 1B C7 D6 DD FF 0B 76 9D
E08A0 BA C2 7E E2 DD 71 70 FF FE ED D3 1F 10 EF A9 BA
E08B0 23 E2 37 F5 37 3E 96 E5 FA 1A 84 CC B3 13 50 9D
E08C0 9F 5F D2 C8 B9 DA 3F E1 6A 13 37 4F FD 8D 9E F1
E08D0 B9 00 23 FF ED 44 13 11 04 CB CE 14 B8 74 26 9B
E08E0 81 46 BC D4 6F 8C FB 8E FD 78 59 E2 64 2C D1 32
E08F0 16 59 4E 16 AC 0A 07 F4 D9 67 03 18 0F 45 4A 19
E0900 08 26 86 99 06 C1 45 86 F0 D0 95 74 EA 33 61 0A
E0910 A7 9D 66 C6 85 08 0E 00 9F 62 3A 0C 1A A8 4A 36
E0920 2E 9E 1E DB F2 31 64 4E BE 9C 6E 6A 7A 13 EB 6D
E0930 E8 6C 9D 05 0E 67 49 3E B2 EE DE 76 51 D5 AB 13
E0940 C9 D6 31 2F 0A 0D 80 13 0E F3 86 9D C4 EB D7 0D
E0950 B5 FD B4 47 5C 6E F6 E1 DE BF 13 C4 D8 F2 6C 76
E0960 20 8C FD F4 E0 CA CC 93 E2 DB 0E 8B 46 DF 46 A6
E0970 8C 38 B1 F2 0E 43 86 BD 95 A1 24 67 25 B7 36 7E
E0980 EA 5B 9B 28 A3 0D 19 5A B7 F6 B7 52 05 35 AA 14
E0990 E7 5F 22 90 2A E6 84 94 67 44 09 2F 71 0B B7 F4
E09A0 B2 6F 7C 16 56 8D FE 73 12 C1 8D BA 4D 94 66 25
E09B0 3B D8 1F C6 D5 FD 10 08 DF F9 A0 B4 9F C0 14 4F
E09C0 BC 29 43 E6 82 ED DF 80 29 77 D2 14 85 97 F5 1A
E09D0 43 A2 CE CA 5A 81 19 F3 D3 A4 1C A0 46 34 9A 61
E09E0 5A 65 BE B1 5C C8 C3 41 CA 20 17 16 6A 3A B7 3C
E09F0 15 EB 2D FE A8 EE 77 41 D3 FA 4D CB E7 0D F7 72
E0A00 84 98 32 5F F8 E1 9C 33 9E E9 3F 70 13 4E 83 D7
E0A10 DC 05 2F F1 44 DE 6F F5 A2 6F 3B E9 A2 6F 3B E0
E0A20 A2 6F EB A3 AB DF 44 5A 7F D3 44 5B 7F E9 A2 2B
E0A30 43 BF B6 11 88 7F 7F B6 27 07 7F 6C 3F 7F B6 29
E0A40 E4 EE 8F AA 4E FD BC 5E 21 94 36 8E 9D A8 C9 2D
E0A50 B8 65 7F 9B A2 AE AE 40 75 DA 0A F2 21 70 6E 4E
E0A60 40 08 DF 3E E6 1A F2 50 3F 40 E2 42 3D 88 A0 E1
E0A70 B9 76 A5 C5 86 4D 30 EF 33 11 52 A6 4A 48 C0 B8
E0A80 79 5E 43 FB FE 1C 8F 63 EA 35 3F 51 88 16 BF B2
E0A90 2E 36 89 86 C3 F9 E6 D8 85 58 61 95 0D A8 18 4A
E0AA0 5A A0 49 23 05 A8 63 A5 CD 88 3A C2 E0 85 45 7A
E0AB0 B5 63 D7 CE 35 3C 7D 52 7A 95 AC 3D 74 B9 FB 51
E0AC0 58 4A A9 39 5C FE 94 19 0A C9 B0 AD EA 75 39 0F
E0AD0 CA 5B 47 6A DF 94 58 E7 A8 58 E7 C8 2C 5B F8 8A
E0AE0 59 F5 0A 59 F4 8A 62 81 84 40 E8 96 26 FE 96 89
E0AF0 1E 13 10 AB 1A 19 FA 10 4E FF 7D 08 37 BF CF 41
E0B00 F9 FF F3 A0 F4 7D 34 67 EF EA E2 2B 1D F3 3E 6E
E0B10 EA C1 21 C4 BC F7 4D 8F 54 E4 DC 4F A8 E7 7D 0B
E0B20 81 6F 0C AD 0F 4E 20 E6 8F C4 D8 5B AC 3D C9 2C
E0B30 D3 E6 74 FA 24 92 36 8A 3B 96 B1 14 C2 AD 95 EC
E0B40 E0 A7 B3 A7 D6 E8 70 A3 99 B5 BA 82 D7 EF FB 10
E0B50 DB 8F 0E 3D A1 89 7E 37 DB 8B 95 5F 85 5B 75 79
E0B60 66 07 35 DB FB 88 87 20 E3 FB A2 3E E4 42 D2 D9
E0B70 CD D0 FB 99 0A E7 20 BC 94 BE 21 A6 61 1C 61 CD
E0B80 23 03 08 36 D2 DC 80 9F F2 0F 28 9B 4A 46 2D 43
E0B90 C8 80 5B 46 43 84 15 13 AF 38 06 00 40 75 05 6F
E0BA0 C7 02 EB 23 81 08 4A 03 8F 70 34 20 70 B8 57 9F
E0BB0 70 1D 26 89 EE 0B BC 6B CD 3A FA D7 6E 05 49 4A
E0BC0 24 9C 6B 80 7C BB A0 49 72 B2 15 21 F0 8C 30 CD
E0BD0 13 60 9D F4 39 DB A9 93 96 1C 8D 7D 65 72 9E F8
E0BE0 BD 11 C7 DC CC C1 B8 58 77 2B 2B F5 8E 8C D7 A9
E0BF0 9F 82 E2 CF 52 EE 90 6E D7 BC 1A 30 5C AE E3 0B
E0C00 C4 00 FB A4 68 BD 5E 9B EC C7 BD 61 B6 0F 89 D0
E0C10 6B C9 EC B1 E6 0B B9 46 BD EF 4D 64 FC 07 BC 46
E0C20 37 B9 07 33 A9 B7 D9 C3 06 89 B0 B9 49 80 A3 18
E0C30 37 F2 E2 71 7C 23 7F 15 C6 F2 1E FB 62 D8 CB 90
E0C40 8E 8D 85 6F B1 36 58 5B 16 DB 0B CB 55 58 0A F5
E0C50 8F 3C 6D D5 13 DC FB B4 BB EC B6 4B 6C 73 94 26
E0C60 CE 7B A1 27 84 27 C9 F0 5C 79 BC BB B8 1B 26 15
E0C70 C9 C4 BE 45 E5 12 7C F0 43 74 D9 C4 F8 02 17 6F
E0C80 E7 01 8F C9 6F A5 BC 3C 26 83 85 1B 8F 30 08 57
E0C90 70 96 82 AE CB F8 86 F3 16 BE B5 30 2F B0 B6 4F
E0CA0 66 D1 31 3F D6 E8 18 3D 0B F4 8D F0 11 41 AE 17
E0CB0 13 0E BC 28 F0 6F 9F 0E B4 0E C3 AE DA 26 73 50
E0CC0 F6 CD 7A AC 2F 6F 1F 20 2F 79 FD 60 22 7A 2D 6C
E0CD0 68 35 2D DA 03 00 00 DA 09 00 00 40 0E E1 18 20
<<MESSAGE TOO LONG -- SOME LINES WERE DELETED>>
PCRelay:DCINFO -> #16 MetroLink International Network
4.10 DC Info Exchange MetroLink International Hub
------------------------------------------------------------------------
Echo Flag : Y Permanent: N Export: N Personal Read: N
BBS: ASTRIX Conference: 4DOS Imported: 7/07/1992
To: ALL Num: 13545 Date: 6/29/1992
From: JOAO ALVES Re: 0 Time: 10:55 pm
Subj: GREAT BAT for 4DOS (3/3) Prvt: N Read: N
From previous Message (3/3)
------
E0D20 2B 3C 06 3C 0C FF FF DD DC DC 52 C4 21 20 26 01
E0D30 4C 03 3C C6 2E 01 B8 76 E8 DB 69 EE 3E 20 FD FC
E0D40 C1 8F 3F 50 65 F4 F4 67 0D A2 F0 F2 C9 E6 F0 4A
E0D50 FD 3B FC E3 E2 FE 13 3E E7 AE 31 16 86 9A 83 EC
E0D60 77 E4 E0 C2 CD A3 0E F4 EC 2D 05 B6 77 3F 5A A2
E0D70 B7 34 29 8A D8 B8 D4 05 C3 5C 2B EB C0 10 A0 58
E0D80 CE D5 7C B1 2E 37 6E 80 54 EA 43 75 15 56 92 B8
E0D90 06 BA 65 A3 C7 C3 D4 34 89 40 2F F0 93 63 42 9A
E0DA0 18 B3 E6 CD 87 D3 8E 42 F7 FD 64 CF 98 BC 0F 55
E0DB0 04 DC 2F C5 04 EF 11 DC A7 8D D1 41 F7 DA AB A1
E0DC0 82 A8 08 4C E6 FC 91 09 97 08 BD 7A 69 88 82 9B
E0DD0 50 6B 74 CB 9D 63 31 D6 18 14 D3 00 74 E1 80 EB
E0DE0 9D 6B 6B 9D 24 D6 2F AC 42 2E 26 1F 05 59 52 8D
E0DF0 C0 20 2D 98 35 93 3C 18 92 B9 21 4D 5A EE 50 DC
E0E00 B6 30 AA 4C AC A6 62 60 50 3A CB FC 3F 70 68 F6
E0E10 46 D7 A4 95 A6 FE 7F EF 96 D4 7E 85 B0 61 6B B2
E0E20 6A DD 07 47 5F 2D 0B DA 21 39 77 07 36 FA 94 93
E0E30 2C 9F 56 1F 50 1D 49 10 D2 A8 95 9A 5C 60 2C 9F
E0E40 B9 0F 1E 7C 41 65 6D 36 24 9D DD B9 3A 8D 82 9F
E0E50 D8 64 2A BA E7 D5 FF 49 F9 14 F9 92 E7 F4 8F E3
E0E60 4A DE 3A C5 B1 81 C7 85 7E 43 08 66 73 56 4E 70
E0E70 E4 D8 F1 9C 5E AD 2C A8 31 39 8E 7F 2D 88 2D 0C
E0E80 98 D0 56 68 A6 31 5B 75 25 72 BA 70 B5 12 60 6B
E0E90 8A 91 17 77 3B 20 29 46 7A 9D 3C 7F 97 C2 0C FD
E0EA0 B8 24 BC 04 D9 A1 7A A8 AC 61 93 2A 20 61 8E 21
E0EB0 7F 05 E2 2A F1 14 08 DD 04 25 00 5B B5 6F 73 4D
E0EC0 8E 1D 5B 15 28 FC 28 DB B7 24 9C 52 46 2C 81 B9
E0ED0 CF EB 85 D7 5B EF 21 57 2A 8C DD ED 77 5D 93 89
E0EE0 08 38 D0 71 89 FB BA 98 86 C5 3D 5A C4 85 45 A7
E0EF0 D4 EF EC 2A 6C 55 D8 65 37 9A C5 6F 63 0A 51 99
E0F00 E4 0E BF 0E F2 FA 4C CB 51 7C 98 83 D9 6A 22 23
E0F10 67 D8 98 31 2E 72 65 9C 4F 2B 9B 30 B6 04 24 48
E0F20 9B 0C 81 96 B2 A5 59 8E 86 C1 95 73 D4 85 55 18
E0F30 C8 C3 5C 6B 27 1A 8C 5B 9E 21 C1 5A 4E 39 46 75
E0F40 2F 79 D4 C7 34 C4 42 27 58 D1 95 44 A5 BE 72 35
E0F50 03 6B 6F 9B AE 6B C0 4C 8A 20 20 51 E3 0D 30 E4
E0F60 35 C0 04 4C 36 A9 6C 20 A6 44 48 75 2D AD 30 40
E0F70 95 0F 17 37 F4 F1 ED A6 41 C9 CF D9 6D 23 E7 E5
E0F80 F7 3E 51 87 63 F7 B5 F3 4B 4B 17 C9 C1 73 23 DE
E0F90 F1 2A CD 74 BE 1C 96 D9 2E 5E EA 82 51 52 3C 55
E0FA0 C2 C5 A5 55 3B 21 5B 1F 85 64 B6 B0 7E CF ED CA
E0FB0 2E 82 C8 3C A5 9A 0D 43 BC AA 93 60 8B E9 E4 28
E0FC0 78 09 BA F0 96 93 46 B7 3E CB B4 4F 7F 7C A7 F4
E0FD0 EF A5 A5 A4 E4 42 50 69 7A C6 70 2D 39 6C 25 DF
E0FE0 8B E1 93 0C BD B9 D8 3C 6C D7 19 26 49 0B 37 F5
E0FF0 CD AE A5 93 5D 9F B7 8C A3 60 A0 A7 66 A7 AA 6A
E1000 CF 2A E3 21 94 06 D7 A0 6F 17 CF 25 EB C1 F2 94
E1010 61 8D 70 EB 3D 07 1A D7 37 86 BA B7 F8 9B 8C D0
E1020 AA 58 E0 E9 5E 91 2C 1A DB B9 AF ED 67 A6 40 F5
E1030 AA 12 96 A7 94 1F 5A B5 AB C6 1E 7F 39 E2 55 9A
E1040 A9 26 32 9D FE 3F 42 FF D1 7F CC 19 8B 54 19 94
E1050 F2 C9 94 09 81 A1 CF 8D 3A 95 66 F9 2E A6 28 64
E1060 EE EC 3B DF 64 F8 A0 BF 7A F7 88 A7 F9 5C 48 1E
E1070 EA 08 6C 23 03 4A 9A 67 8C 20 61 B2 E0 BD 63 6B
E1080 DB 49 65 0A D0 C5 12 F8 2E 9E D5 60 E2 1B 94 59
E1090 9C 36 D8 86 5F 0C 21 4D B9 1A ED 9B 75 40 76 D3
E10A0 1A 8D 1A 8B 03 C7 66 7F FD AC 7D A7 9D A2 D0 5A
E10B0 93 2D 41 77 C3 5E 57 6C A9 E5 A0 68 87 97 D1 E8
E10C0 BE 9F 15 0D 17 69 07 8F 8B E3 22 71 2D 6C 68 35
E10D0 2D 1D 02 00 00 43 05 00 00 40 0E E1 18 20 01 09
E10E0 34 49 4E 46 4F 2E 48 53 54 66 06 4D 00 00 02 0E
E10F0 63 77 B1 A6 E4 4D EA 55 CE 65 FB 58 65 4C A9 40
E1100 29 95 33 2C A5 02 A2 6C 12 08 86 D9 85 59 87 12
E1110 7E 43 96 87 74 DD DD C1 67 8E 5F E9 28 AE CC 73
E1120 4D 2D 61 6A 46 40 25 8D A6 EF 2F 20 7F F3 03 F0
E1130 77 42 19 4E B6 25 54 FA 24 5B FE E7 2F 27 04 AB
E1140 DD 5D 61 6C 98 D6 F3 99 56 FE 57 CB CD F4 1D 87
E1150 34 E1 A4 67 13 2C 7C 92 30 39 23 09 24 1E B4 8E
E1160 FF 83 B2 04 B3 82 54 95 70 7E 6C 02 BD 24 83 20
E1170 66 85 EC 7D BA B3 84 30 03 12 0B A0 4B 8D B4 05
E1180 0A 4C 62 B5 9D 13 7A 11 9D 9D FA B6 19 1F A5 83
E1190 D2 A5 0B 48 4A 95 05 29 6A 81 6D 9A 61 5B 0E 94
E11A0 7B 00 FB 94 22 0F 66 7D E8 88 00 68 C4 24 3A E8
E11B0 9C D4 F5 7A AC 7E 0E 89 13 BD 77 21 88 36 A6 4E
E11C0 2A F1 38 C0 4B 39 46 7A 03 1D 69 C1 D1 02 77 81
E11D0 D8 11 99 01 AC 43 71 C7 78 C9 63 0F 79 D9 B0 3E
E11E0 60 46 8B 95 EB B2 AD 72 DA F6 17 B3 60 81 B5 9E
E11F0 73 B2 97 46 D8 D2 89 4F 33 54 5C 93 CF 57 64 69
E1200 9D 2A 5D 8C 6C 6D 2A 0B A9 10 16 2C 5D 51 B7 3C
E1210 30 43 73 14 39 A1 D3 C0 A0 BF 2A 26 F8 BA 89 AF
E1220 5B FA 35 15 D1 35 60 77 D0 4B 1B 4C E9 38 40 F4
E1230 B5 80 F4 11 3F D2 19 9E 8B 56 37 E2 FA 87 BC 9A
E1240 BF 68 B2 58 08 C4 95 28 63 61 32 F5 B6 60 3A 03
E1250 B4 CA AC 1D B8 D3 B4 56 17 49 87 7A ED DE 2C 13
E1260 FF 81 B1 BB AD 0C 09 5D 43 19 20 FB BF A6 18 33
E1270 E4 83 57 AC 5F D0 2A 8C 95 CD 30 D4 D4 03 22 4A
E1280 D9 71 B0 A3 11 E6 46 D2 ED E3 29 39 F1 25 12 0A
E1290 0A D1 79 EB A5 9E 8B 98 AD 57 3E 12 89 E9 72 1D
E12A0 8C 66 AC 65 69 4D 0F E1 5F 8C 06 F1 AB C0 4C A1
E12B0 06 3D 04 37 75 C1 F9 D2 97 0A B5 F1 57 58 40 94
E12C0 0F 48 61 BB 87 B1 DA DF AF 6E BC 3D 96 AC 61 D7
E12D0 F2 C1 04 C8 50 FE DA 75 14 B8 BF 82 E8 6B A5 85
E12E0 E2 40 81 46 E3 A9 35 43 60 E6 E6 F3 05 E9 1F 0F
E12F0 00 A2 AF 8F 01 1A 84 CC 1A A2 3E 9C 9A 33 3F 89
E1300 ED 59 02 56 A2 37 40 92 06 7B 80 00
RCX
120C
<<MESSAGE TOO LONG -- SOME LINES WERE DELETED>>
PCRelay:DCINFO -> #16 MetroLink International Network
4.10 DC Info Exchange MetroLink International Hub
------------------------------------------------------------------------
Echo Flag : Permanent: N Export: N Personal Read: N
BBS: ESCMAIL Conference: 4dos Imported: 7/07/1992
To: OLIVIER VANBIERVLIET Num: 258 Date: 7/02/1992
From: DOMINIC STRANGE Re: Time: 8:29 pm
Subj: Aliases Prvt: N Read: N
Hello Olivier
OV>I think I have an idea.. what about everybody writing a
OV>message in this area
OV>with there best aliases. So we can make a list of it...
Okey Pokey, here are some simple ones
DOR=DIR \_ Standard spelling mistakes <g>
DUR=DIR /
DESCRIBE=SELECT *DESCRIBE(*.*)
adir=dir %1*.arc;%1*.arj;%1*.zip;%1*.pak;%1*.sdn;%1*.lzh
edir=dir %1*.exe;%1*.com;%1*.bat;%1*.btm
vdir=dir %1*.voc
mdir=dir %1*.cmf;%1*.mod;%1*.rol
X=EXCEPT ( cos I'm lazy !
Cheers
Dominic
* SLMR 2.1a * I din't expect the Spanish inquisition...
--- Maximus 2.01wb
* Origin: Golly! = A 4DOS BBS = [+44-734-320812] (2:252/21)
------------------------------------------------------------------------
Echo Flag : Permanent: N Export: N Personal Read: N
BBS: ESCMAIL Conference: 4dos Imported: 7/07/1992
To: JOERI GOLSTEYN Num: 293 Date: 6/30/1992
From: AARON MARASCO Re: Time: 4:40 pm
Subj: Aliases Prvt: N Read: N
On 06-26-92 joeri golsteyn wrote to Joeri Golsteyn...
jg> JG:I think I have an idea.. what about everybody writing a
jg> message in this area
jg> JG:with there best aliases. So we can make a list of it...
jg>
jg> JG:So everybody in this area can optimize there system... Since I used
jg> 4DOS I
jg> JG:saved LOTS of time.
Here's a few, with comments.
MV=select move [*.*] %& {Quick and Dirty mover}
PU*SHD=*pushd {What can I say, I'm lazy...}
PO*PD=*popd {Ditto}
BEEP=*beep 440 4 600 2 1040 6 {Copied straight from the NDOS
manual}
VOLS=vol C: D: E: G: H: {I have them named ADAMSystem0,
ADAMSystem1, etc... It looks nice..
:)}
RUNS=DIR *.EXE;*.COM;*.BAT;*.BTM;*.BAS
{For my sister, brother, and mother,
lists all the files that run. A personal
fav.}
NCD=Swapping Off^D:\Norton\Ncd.Exe %&^Swapping On
{Norton Change Directory. Want it as
fast as possible on my 8MHz.}
NAME=*DESCRIBE {Yet again, I'm lazy}
MAKE=MD %1^Cd %1 {Good when going through C:\MODEM}
ZAP=Echo Y|Del %1 /Z^rd %1 {Ditto}
TP=\ASA\TP\TURBO {Load Turbo PASCAL real quick}
I know you didn't ask for them, but this is my fav SETs.
Set .DOC=Q %1 {Load QEdit on any .DOC}
Set .LZH=LHARC E %1 {Auto-extract .LZH}
Set .TXT=Q %1 {Load QEdit on any .TXT}
Set .ZIP=PKUNZIP %1 {Auto ZIP}
Set .PAK=PAK E %1 {Auto PAK}
Set .ARJ=ARJ E %1 {Auto ARJ}
Set .ANS=TYPE %1 {LIST doesn't support ANSI [YET!?!?!]}
set DIRCMD = /4 /O:N /J /V /P {My way}
One of the best things about NDOS is the filename point and shoot
by setting the extensions. I love it!
+-+ + + +-+ +-+
+-++-+ +-+|\| +-+++++-+ +-+| |
| |+-++-+| || | +++++-+|+++-++-+| +-+
| |++++-+ |++|| | | |+-++-+
|++ | | +-+
... OFFLINE 1.36 * Aaron Marasco, CEO AbsortoSoft America! (203)758-6155
--- Maximus 2.01wb
* Origin: less is more. (1:141/590)
------------------------------------------------------------------------
Echo Flag : Permanent: N Export: N Personal Read: N
BBS: ESCMAIL Conference: 4dos Imported: 7/07/1992
To: WILLIAM HUGHES Num: 348 Date: 7/04/1992
From: JUSSI JAASKELAINEN Re: Time: 12:21 pm
Subj: Aliases Prvt: N Read: N
> FF echo %@char[12] > prn
> FFC echo %@char[12] > com2
> LF echo %@char[13] > prn
> LFC echo %@char[13] > com2
These are good... But I have done same and more other way.. All codes are
Canon LBP -laser printer codes...
:Charter Per Ins
CPI=set X=0^iff "%&"=="" then^echos 6 10 12 15^else^if "%&"=="15" set X=2^if
"%&"=="12" set X=1^if "%&"=="10" set X=0^if "%&"=="6" set X=3^echos ¢%X K>
prn^endiff
:Stop DOT-printing
EDOT=echos ¢25m > prn
:Stop REVERSE-printing
EREVERS=echos ¢27m > prn
:Stop SPACE-printing
ESPACE=echos ¢28m > prn
:Stop UNDERLINING
EUNDERL=echos ¢24m > prn
:Send Form Feed
FF=echos <^x>f > prn :<^x> = arrow up
:Start ITALIC-Printing
ITALIC=echos ¢3m > prn
:Commad tells all possibilities
LASER=echos BOLD ITALIC LIGHT UNDERL EUNDERL REVERS EREVERS DOT EDOT SPACE
ESPACE^echos REGULAR UPRIGHT
:Start LIGHT-Printing
LIGHT=echos ¢2m > prn
:Line Per Ins
LPI=set X=0^iff "%&"=="" then^echos 3 4 6 8 12^else^if "%&"=="12" set X=3^if
"%&"=="8" set X=4^if "%&"=="4" set X=1^if "%&"=="3" set X=2^echos ¢%X L>
prn^endiff
:Start REGULAR-Printing
REGULAR=echos ¢22m > prn
:Reset printer print codes
RESET=echos ¢0m > prn
:Start REVERSE-Printing
REVERS=echos ¢7m > prn
:Start SPACE-Printing
SPACE=echos ¢8m > prn
:Start UNDERLINING
UNDERL=echos ¢4m > prn
:Start BOLD-Printing
BOLD=echos ¢1m > prn
:Start DOT-Printing
DOT=echos ¢5m > prn
So I can use printer resources from DOS... Example I use LPI 12 & CPI 15 I
can write 130 x 150 charters to A4 paper...
SM FAdpC
---
* Origin: SM Home Point.... Point of Salpu CBCS. (2:221/105.5)
------------------------------------------------------------------------
Echo Flag : Permanent: N Export: N Personal Read: N
BBS: ESCMAIL Conference: 4dos Imported: 7/07/1992
To: CHARLES BUCHANAN Num: 253 Date: 7/02/1992
From: WAYNE THOMASON Re: Time: 9:05 pm
Subj: Date Prvt: N Read: N
CB> Does anybody know of a way to get the Julian date for the
CB> current day ? The Julian date is the numerical day of the
CB> year from January 1. So that FEB 1 would be Julian day 32.
Well, I just shelled out and worked one up, just for you... No guarantees
that it'll always give accurate dates, but I think it'll do the trick. Here
it is:
_______________cut here______________
rem Julian.BTM
@echo off
set Julian=%@eval[%@date[%_date]+1]
:repeat
if %Julian% le 365.25 goto end
set Julian=%@eval[%Julian%-365.25]
if %Julian% gt 365.25 goto repeat
:end
Set Julian=%@int[%julian%]
echo %Julian%
_______________cut here______________
The environment variable JULIAN will contain today's Julian date.
I had to use the FUNCtion that gives the # of days since 1-1-80 at midnight
for a given date (plus 1 to account for day 1), feeding it with the current
date variable, then I subtracted 365.25 from the value repeatedly until it
was less than 365.25. Finally, I took the INTEGER portion of that value,
and that is the julian date for this year.
--- RemoteAccess 1.11+
* Origin: The Avenger, Allen TX - 214-390-7840 (1:124/7004)
------------------------------------------------------------------------
Echo Flag : Permanent: N Export: N Personal Read: N
BBS: ESCMAIL Conference: 4dos Imported: 7/07/1992
To: CHARLES BUCHANAN Num: 262 Date: 7/03/1992
From: WAYNE THOMASON Re: Time: 4:13 pm
Subj: Date Prvt: N Read: N
In a message to All <07-01-92 8:12>, Charles Buchanan wrote:
CB> Does anybody know of a way to get the Julian date for the
CB> current day ? The Julian date is the numerical day of the
CB> year from January 1. So that FEB 1 would be Julian day 32.
Sorry Charles, found a flaw in my JULIAN.BTM. On leap years (of which this
is one), December 31 would generate a "0" instead of "366". I have fixed it
with an additional line which tests for %JULIAN=0 and which changes it to
"366" if the condition is true. I've also provided a means to enter a date on
the command line in this one, so you can use it to find Julian dates other
than the current date. Here's a revised version of JULIAN.BTM:
_______Cut Here_______
Rem JULIAN.BTM
@echo off
if "%1" ne "" goto Manual
set Julian=%@eval[%@date[%_date]+1]
goto repeat
:Manual
Set Julian=%@eval[%@date[%1]+1]
:repeat
if %Julian% le 365.25 goto end
set Julian=%@eval[%Julian%-365.25]
if %Julian% gt 365.25 goto repeat
:end
Set Julian=%@int[%julian%]
if %Julian%=0 set Julian=366
echo %Julian%
_______Cut Here_______
Hope this helps! As stated in my original message, the environment variable
JULIAN contains the Julian date for the current day. That date can be
plugged into other batch files by simply using %Julian% as a variable (I
think the trailing % is optional in 4DOS). If you type JULIAN 12-31-92, it
should return 366 now.
--- RemoteAccess 1.11+
* Origin: The Avenger - Allen TX - 214-390-7840 (1:124/7004)
------------------------------------------------------------------------
Echo Flag : Permanent: N Export: N Personal Read: N
BBS: ESCMAIL Conference: 4dos Imported: 7/07/1992
To: CHARLES BUCHANAN Num: 279 Date: 7/03/1992
From: MORRIS TURPIN Re: Time: 5:22 pm
Subj: Date Prvt: N Read: N
In a message dated Jul 01 at 08:12, Charles Buchanan of 1:3812/10.6
wrote to All:
CB> Does anybody know of a way to get the Julian date for the current
CB> day ? The Julian date is the numerical day of the year from January
CB> 1. So that FEB 1 would be Julian day 32.
Here's a .BTM file that will do the trick for you. Note that the third last
line and the second last line below are really on one line:
Julian.btm
set doy=%@eval[%@date[%_date]-%@date[1/1/%@substr[%_date,1,-2]]+1]
set week=%@int[%@eval[%doy/7+1]]
set lstdigt=%@substr[%_date,1,-1]
iff %lstdigt eq 1 then ^ set ending=st
elseiff %lstdigt eq 2 then ^ set ending=nd
elseiff %lstdigt eq 3 then ^ set ending=rd
else set ending=th
endiff
echo Today is the %doy%%ending day in the %week%%ending week of
19%@substr[%_date,1,-2].
unset doy week ending lstdigt
There is a small bug in %ending in that it will return 12nd and 13rd instead
of 12th and 13th. You can fix this up yourself or else delete these lines.
If you decide to fix it up please post your results.
--- msged 2.07
* Origin: Ansi's Escape, Echo Point -- Ottawa, Ontario (1:163/140.3)
------------------------------------------------------------------------
Echo Flag : Permanent: N Export: N Personal Read: N
BBS: ESCMAIL Conference: 4dos Imported: 7/07/1992
To: FURLAN PRIMUS Num: 338 Date: 7/04/1992
From: MAYNARD HOGG Re: Time: 10:05 am
Subj: Eliminating Duplicate Ent Prvt: N Read: N
FP>great! and where do i get a copy of UNIQ????
Run the following through a C compiler:
/*
Public domain code by Maynard Hogg
Use at your own risk!
*/
/*@(#)uniq.c - strip adjacent duplicate lines */
#include <stdio.h>
#include <string.h> /* strcmp() */
#include <ctype.h> /* is...() */
#include "getopt.h"
#define isdic(x) (isalpha(x) || isdigit(x) || isspace(x))
#define min(x,y) ( (x<y) ? x : y)
#define SHOUT(x,y) (void) fprintf(stderr,x,y)
#define FALSE 0 /* logical false constant */
#define TRUE ~0 /* logical true constant */
static char *SCVCSID = "@(#)"
"uniq - deletes identical adjacent lines - Maynard Hogg (89/08/07)\n";
void usage(void) {
SHOUT("Usage: uniq [-options] <infile >outfile\n"
"Options:\n"
"\t-c\t= count number of occurrences\n"
"\t-d\t= duplicates only\n"
"\t-f\t= fold order (ignore case)\n"
"\t-n\t= number (same as -c)\n"
"\t-u\t= unique lines only\n"
"\t-h,?\t= this display\n"
"Options may appear separately or together and in any order.\n"
,NULL);
exit(1);
}
main(int argc, char **argv) {
char buf1[MAXLINE], buf2[MAXLINE],
*ptr1,
*ptr2;
int c,
(*fptr)(); /* comparison function */
unsigned
len, /* length of string */
count;
BOOLEAN
fflag = FALSE, /* fold (ignore) case */
uflag = FALSE, /* unique lines only */
dflag = FALSE, /* duplicates only */
nflag = FALSE; /* count frequencies */
SHOUT(SCVCSID +=4,NULL);
while (-1 != (c=getopt(argc, argv, "fudcn?hFUDCNH")))
switch(tolower(c)) {
case 'f' : fflag = TRUE; break;
case 'u' : uflag = TRUE; break;
case 'd' : dflag = TRUE; break;
case 'c' :
case 'n' : nflag = TRUE; break;
default:
SHOUT("Illegal command line switch: -%c\n",c);
case '?' :
case 'h' :
usage();
}
argc -= optind;
/* Adust flags:
* Make du the same as the default.
(FF, FT, and TF, but not TT)
* Suppress count for nu case. */
if (dflag & uflag) dflag = uflag = FALSE; /* default */
if (uflag) nflag = FALSE; /* who needs 1's? */
/* final check of command line */
if (++argc) usage(); /* should be none left */
/* shift from human to computer index */
/* Select comparison function */
fptr = fflag ? strnicmp : strncmp;
/* main loop */
ptr2 = gets(buf2);
while (ptr2) {
strcpy(ptr1 = buf1, buf2);
count = 0; /* number of duplicates */
while (NULL != (ptr2 = gets(buf2))) {
if (fptr(ptr1,ptr2)) break;
count++;
}
if ( (uflag && count) /* skip duplicated lines */
|| (dflag && !count) /* skip unique lines */
) continue;
if (nflag) printf( "%6d: ", count+1);
puts(buf1);
}
}
-- SPEED 1.10 #1086:
--- GEcho 1.00/beta
* Origin: SuperBBS Support/Sales/Beta Avxia_bbs Tokyo Line 1 (6:730/9)
------------------------------------------------------------------------
Echo Flag : Permanent: N Export: N Personal Read: N
BBS: ESCMAIL Conference: 4dos Imported: 7/07/1992
To: SCOTT GILBERT Num: 301 Date: 7/04/1992
From: BOB CAMPBELL Re: Time: 8:34 am
Subj: New -FUNCS- Prvt: N Read: N
> SS> Is there a way to get 4dos to generate a randome number?
> SS> How about a new function to do this, like %@RANDOM[1,10]
> SS> to get a random number between 1 and 10? :-)
>
> %@substr[%_time,0,-1]
>
> Note that if you use this technique more than once in the
> same batch or alias, you will not get good independent
> random numbers. For instance, the second "random number"
> will always be one greater than the first "random number"
> if it takes about one second between
> generating the terms.
As you can see by the example output included below, this routine will
produce a random number between 1 & 10. It can use be used in quick
succession as demonstrated below. You may have to change the drive letter
for @unique[]. F:\ is my ram drive.
----------------------- Cut Here -----------------------
: Ran.btm - Bob Campbell 11/27/91
: generates a random number
: ------------------------------------------------
setlocal
set start=0
set ttl=0
:start
set name=%@unique[F:\]^DEL %NAME /Q
set ttl=%@eval[%@ASCII[%@SUBSTR[%name,10,1]]+%ttl]
set start=%@eval[%start+1]
if "%start" ne "3" goto start
set RANDOM=%@SUBSTR[%ttl,2,1]
echo %random
endlocal
----------------------- cut here --------------------------
Here are three example runs in quick succession (stacked to conserve space)
c:\>ran^ran^ran^ran^ran^ran^ran^ran^ran^ran^ran^ran
9
2 c:\>ran^ran^ran^ran^ran^ran^ran^ran^ran^ran^ran^ran
9 7
7 8 c:\>ran^ran^ran^ran^ran^ran^ran^ran^ran^ran^ran^ran
6 6 2
0 3 1
1 1 2
4 6 4
7 5 9
2 1 1
4 2 0
7 1 1
1 9
4 4
9
3
--- OPMED 3.00
* Origin: 4DOS leaves command.com in awe (1:119/911.1)
------------------------------------------------------------------------
Echo Flag : Permanent: N Export: N Personal Read: N
BBS: ESCMAIL Conference: 4dos Imported: 7/07/1992
To: TONY NUGENT Num: 256 Date: 7/03/1992
From: JC CRANFILL Re: Time: 10:51 am
Subj: Problem fine-tuning 4dos Prvt: N Read: N
TN>The second problem is much trickier. I want 4DOS to run from my
TN>RAM drive (lock, stock and barrel). So I copy the following
TN>files into my RAM drive from my AUTOEXEC.bat:
To: REX CONN
From: TONY NUGENT
Date: 06/30/92
>>>>Text Omitted<<<<
Re: PROBLEM FINE-TUNING 4DOS
I made a 4DOS subdirectry on drive G, my ram drive. I moved these files
into it changing any path names where appropriate:
4dos.com 4help.exe
4dos.hlp 4start.btm
4dos.ini aliases
4exit.btm history
I then made an alias called mk4auto (thanks DG)
mk4*auto del c:\4dos\4auto.exe ^ ARJ a -jf -je1 c:\4dos\4auto G:\4DOS\*.*
The reason for the alias is so that if I need to make a change to any of the
files on the ram drive the 4AUTO.EXE file on the hard drive can easily be
regenerated.
From config.sys
1: DEVICE=C:\UTILS\XDISK.SYS /B8192 /D512 2: DEVICE=C:\UTILS\RAMDRIVE.SYS
parm1 parm2 ... 3: INSTALL=C:\4DOS\4AUTO.EXE 4: SHELL=G:\4DOS\4DOS.COM
G:\4DOS @G:\4DOS\4DOS.INI
Take your pick of either line 1 or 2 and optimize the driver first. You will
need both lines 3 and 4. I use line 1 because the XDISK driver allows ram
drives larger than 4 megs and is DV and QEMM compatible. Line 3 gives me an
config error at boot up, but I just ignore it as it does not hurt anything.
Works like a charm and it freed up about 150 k to boot. Press F1 and the HD
light does not come on. Aliases and history are loaded with out accessing
the hard drive either. Date: 03-27-92 (10:45) Number: 596 From:
DARRYL GREGORASH Refer#: NONE
To: JC CRANFILL Recvd: NO Subj: DOS 5: BOOT FROM A RAM
DR Conf: (39) 4DOS I made up an ARJ self-extracting file, with the
following files in it: I:4DOS.COM I:4DOS.INI Note the paths stored in the
file. Actual drives/paths will vary, depending on your system configuration.
I believe the command line I used (ARJ 2.30) was:
arj a -je -jf -y d:\4dos40\4exec i:\4dos*.*
(je says create self extractor, jf says store full drive/path with the
filename, y is to avoid that silly question asking me to confirm that I
really do wish to do this).
Note that you can have as many files in your archive as you want, or as
space will allow, including stuff in subdirectories, including empty
subdirectories (there is a switch to include empty subdirectories in the
archive). If you already have such an archive, you can convert it to
self-extractor by running
arj y -je <ARJfile>
In CONFIG.SYS, add the following DOS 5 INSTALL command;
install=d:\4dos40\4exec.exe -y
(-y says to assume <Y>es to all queries, not sure if that is really needed).
DOS will complain, since nothing stays resident, but you can ignore that --
DOS is not smart.
The SHELL line then reads:
SHELL=i:\4DOS.COM i:\ @i:\4dos.ini
I -believe- all the information here is necessary, since i: is definitely
not the boot drive (boot drive equals drive from which DOS kernel, ie. IO.SYS
and MSDOS.SYS, were loaded, which will normally be C:)
TN>To make things even more complicated, I like using PCKWIK and
TN>PCKRAMD.sys as my RAM drive / cache (very nice) but the (earlier)
TN>version of PCKWIK that I am using is loaded via AUTOEXEC.bat, so
TN>the RAM drive is not activated until this time! So not only
TN>doesn't the directory exist, neither does the drive! I could use
TN>RAMDrive.sys, but I would miss out on the dynamic memory sharing
TN>of the cache/RAM Drive.
Above are two messages I used to set up the operation you desire on my
machine. You may be able to use the 'INSTALL' command with superpck but I
don't know since I don't have it and can't experiment with it. It might be
possible to set at least the ramdrive parameters for it in config.sys and
then add further switches through Autoexec.bat.
My apologies for the long post but it took both of them for me to get it
tweaked. Good luck.
"JCC"
===
* RoboMail * Coming soon to a QWK near you.
--- TosScan 1.00
* Origin: T.A.B.B. Tampa's largest Fidonet BBS 813-961-6242 (1:377/6)
------------------------------------------------------------------------
Echo Flag : Permanent: N Export: N Personal Read: N
BBS: ESCMAIL Conference: 4dos Imported: 7/07/1992
To: ALL Num: 299 Date: 7/04/1992
From: JASON FESLER Re: Time: 2:19 pm
Subj: Renumbering Netmail Messa Prvt: N Read: N
For anyone who wants it, this batch file will take a netmail directory, and
renumber it starting at 1. It will preserve the previous numerical order of
the messages.
Looks ugly here, sorry. Can't post high-ascii characters here.. but it
_does_ look good when it's running.
Usage:
[Call] Renumnet d:\path, where d:\path is the drive and directory name
of your netmail directory. The "CALL" is only
neccesarry if you are calling this from another
batch file.
---[Renumnet.btm]--cut here--
@echo off
setlocal
Alias INC=Set %%1=%%@Eval[%%[%%1]+1]
color bri yellow on black
Echo ReNumNet (C)1992 Jason Fesler.
color bri cyan on black
if "%1"=="" (Echo Usage: ReNumNet %@char[175]netmailpath%@char[174] ^ Goto
Quit)
Cd %1
If Not Exist *.Msg Goto Quit
Echo Renumbering Netmail Directory %_cwd%
Rename *.Msg *.m!g /Q
Set x1=1
Set x2=1
color cyan on black
:Loop
If Not Exist %x1%.m!g (Inc x1 ^ Goto Loop)
Echos %@char[13]Renumbering %x1% -%@char[16] %x2%
Rename %x1%.m!g %x2%.Msg /Q
Inc x1
Inc x2
If Exist *.m!g goto loop
Echo %@char[13]%@char[10]Done!
:quit
endlocal
--- FMail 0.90
* Origin: Instand Origin Line, Just Add Water: (1:203/7707)
------------------------------------------------------------------------
Echo Flag : Permanent: N Export: N Personal Read: N
BBS: ESCMAIL Conference: 4dos Imported: 7/07/1992
To: LARRY MINTON Num: 278 Date: 7/03/1992
From: ERA ERIKSSON Re: Time: 12:57 am
Subj: which.btm (was: <some bra Prvt: N Read: N
* Quoting Larry Minton (1:226/60) to Era Eriksson on 30 Jun 1992:
EE>> (adapted from Larry Minton's WHATIS.BTM, posted here from time
EE>> to time)
> Hey, who said you could modify my fine little program!?! Some people
> just can't handle perfection. Now if I could just get it to do
> everything I really want it to do... Seriously, glad to see someone
> actually uses it! What types of mods did you make?
I refine it from time to time; it's hard to recapitulate everything in one
breath. Hey, it might be useful enough to deserve a reposting! Here goes.
:::::::::::::::
:: WHICH.BTM ::
:::::::::::::::
:: \bat\which.btm /* era */ 18.8.91
:: Now does internal cmds, too!
:: Thanks to Larry Minton @ Fido 1:226/60 for his whatis.btm, which did it
::
:: Slightly edited for 4DOS v4 6.11.91
@echo off
setlocal
iff "%1" =="" then
echo Need an argument
quit
endiff
set cmd=%@lower[%1]
set tcmd=%1
if %@substr[%1,0,1] == @ set tcmd=%@substr[%1,1,9]
:: Test for alias
iff isalias %1 then
echos %cmd aliased to
*alias %cmd
quit
endiff
:: Test for internal command
if %@substr[%1,0,1] == * set tcmd=%@substr[%1,1,9]
iff %@upper["%tcmd"]== "SETDOS" then
set _W_=
else
setdos /i-%tcmd |& input %%_W_ >nul
setdos /i+%tcmd >&nul
endiff
iff "%_W_" == "" then
echo %cmd is an internal command
quit
endiff
:: Test for external command
set _W_=%@search[%tcmd]
iff not "%_W_" == "" then
echo %_W_
echos %@descript[%_W_]
quit
endiff
::
echo %cmd not found.
:::::::::::::::::::::::::::
It still has a few flaws, and as I said, I change it something like once a
week. The hardest one is coping with the descriptions; if the description of
a program contains a redirection symbol or a command separator, you'll get an
error. I've resorted to escaping those characters when I use them in a
description. Like this:
%prompt> which addprog
d:\xit\addprog.btm
*dir /d a:\ ^X| newdata ^X>^X> progdisk.txt
The ^X:es won't actually show up in the description; I inserted them by hand
as an example.
I used to have it ECHO the contents of an alias, too (that's easy now that
we have %@alias), but that gave me more errors than I could count. I'd still
like to see a solution to this problem.
Mostly, I use the description stuff to check which version of a program I
have, but sometimes, descriptions like the above can be real helpful.
/* era */
--- 4dos 4.01 && GoldEd
* Origin: Your wish is my 4dos o . (Ball point, Helsinki) (2:220/851.95)
------------------------------------------------------------------------
Echo Flag : Permanent: N Export: N Personal Read: N
BBS: ESCMAIL Conference: 4dos Imported: 7/08/1992
To: MORRIS TURPIN Num: 364 Date: 7/06/1992
From: WAYNE THOMASON Re: Time: 5:16 pm
Subj: Date Prvt: N Read: N
In a message to Shaun Crossley <07-04-92 14:23>, Morris Turpin wrote:
SC> Try this out...
SC> echo %@eval[ %@date[%_date ]-%@date[1-1-%@substr[ %_date,6,2] ] ]
MT> Have you checked out what julian date is returned for 1
MT> January is using the above, Shaun. I haven't either, but I
MT> suspect that it will return a "0" instead of (the correct)
MT> "1". Of course, all other dates will also be out by one
MT> day. To correct this you have to add one to the %@eval[]
MT> statement. The following will return the correct julian
MT> date:
MT> set julian=%@eval[%@date[%_date]-%@date[1/1/%@substr[%_date,1,-2]]+1]
Morris, here's an alias that works beautifully, including a check for valid
output. Without a valid output (entering garbage or incorrect date), it
displays a USAGE: hint. I've been tweaking this routine since Charles
Buchanan asked for it, and with help from other readers to show me the best
method, I've finally come up with a nice ALIAS. I will include both the
.BTM version and the ALIAS.LST version (obviously their almost identical,
but...):
(Add to your AUTOEXEC.BTM, this is all one line, not 4 separate ones)
alias julian `set tmp=%_date^if "%1" ne "" set tmp=%1^set
julian=%@eval[%@date[%tmp]-%@date[1-1-%@substr[%tmp,1,-2]]+1]^iff
%@len[%tmp] lt 6 .or. %julian le 0 then echo Usage : JULIAN
[mm-dd-yy]^unset julian^else^echo %julian^endiff^unset tmp`
(Or instead, add this to your ALIAS.LST, as before, all one line)
julian=set tmp=%_date^if "%1" ne "" set tmp=%1^set julian=%@eval
[%@date[%tmp]-%@date[1-1-%@substr[%tmp,1,-2]]+1]^iff %@len[%tmp]
lt 6 .or. %julian le 0 then echo Usage : JULIAN [mm-dd-yy]^unset
julian^else^echo %julian^endiff^unset tmp
--- RemoteAccess 1.11+
* Origin: The Avenger, Allen TX - 214-390-7840 (1:124/7004)
------------------------------------------------------------------------
Echo Flag : Permanent: N Export: N Personal Read: N
BBS: ESCMAIL Conference: 4dos Imported: 7/08/1992
To: DAVID SWARD Num: 363 Date: 7/06/1992
From: JASON FESLER Re: Time: 11:43 am
Subj: Prompt Prvt: N Read: N
> I came across a good prompt yesterday, and not knowing if anyone here
> uses it, here it is -
This one you can do via batch file - it's in my autoexec.
PROMPT=$e[s$e[1;1H$e[1;33;44m$e[K Shell
($e[37m$z$e[33m)$e[34;44m│$e[33mMem: $e
[37m%@dosmem[k]k$e[34m│$e[37m$t$e[34m│$e[33mLast
Error:$e[37m$r$e[34m│$e[37m%@diskfree[$n:,k]$e[33mk free at
$e[37m$P$e[K$e[u$e[0;1;36m$p$g $e[0m
(All of that on one line, of course, with spaces where the line breaks are.)
What this ends up looking like: the prompt will go to the top of the screen,
change to blue background for a "status line", and draw:
+---------------------------------------------------------------------
| Shell (1)│Mem: 574k│11:13:52│Last Error: 0│20041k free at C:\FD
The titles are in yellow; the relavant parameters are in white, and the
seperator bars are light blue. Looks quite nice, and contains all the
information I used to have to run dos functions for.
--- FMail 0.90
* Origin: Instand Origin Line, Just Add Water: (1:203/7707)
------------------------------------------------------------------------
Echo Flag : Y Permanent: N Export: N Personal Read: N
BBS: ASTRIX Conference: 4DOS Imported: 7/10/1992
To: KETIL KRUMM Num: 13645 Date: 7/03/1992
From: RIC NAFF Re: 0 Time: 10:27 am
Subj: FOR/NEXT LOOPS Prvt: N Read: N
┌─────┤ FROM: KETIL KRUMM ├─────┤ ON: 6/30/19 ├──────────────────────┐
...Being a programmer, a love structured batch files...
└─────┤End-Quote├─────────────────────────────────────────────────────┘
If that's the case, then you should be eager to *remove* as much
in-line/top-down code as possible and divert them to subroutines.
In 4DOS, the (a) way to handle this is:
FOR %File in ( %Filelist ) GOSUB MyLabel
commands to execute after FOR/NEXT "loop" finishes
QUIT
:MyLabel
commands to execute within the FOR/NEXT "loop"
RETURN
Alternatively, if you do not want to keep the "subroutine" code in the
same .BTM file:
FOR %File in ( %Filelist ) CALL MySubr.BTM %File
commands to execute after FOR/NEXT "loop" finishes
where MySubr.BTM contains the commands you want to execute in the
FOR/NEXT "loop". Make sure you pass the value of %File so that
MySubr.BTM can have access to it via "%1"...
Ric
PCRelay:DFWPGMR -> #1033 RelayNet (tm)
4.11 DFW Programmers' Exchange (214)398-3112 <ASP>
PCRelay:DCINFO -> #16 MetroLink International Network
4.10 DC Info Exchange MetroLink International Hub
------------------------------------------------------------------------
Echo Flag : Y Permanent: N Export: N Personal Read: N
BBS: ASTRIX Conference: 4DOS Imported: 7/10/1992
To: DEBBIE GORNEY Num: 13650 Date: 7/04/1992
From: JIM WETZSTEIN Re: 0 Time: 10:36 am
Subj: NEW 4DOS Prvt: N Read: N
DG║ None that I can see. I wasn't deleting the descript.ion file, I
DG║ was looking for a way to display them with the file name
DG║ [no .ext]. and no other information that would normally be seen.
Wrote a small, quick .BTM for you. You said you only want to see
the file and desc. So you might not want the Header stuff I put into
it. I can remove this if you want. Try it if you like it, send $100
to REX and Tom. <G>
CHANGE ALL # signs to the Shift-2 character!!!!!!!
DDD.BTM (or what ever you want to name it)
eg. DDD *.* or DDD *.COM or DDD *.COM;*.EXE
------------------------------------------
CLS
SET DDD_SCRLIN=1
GOSUB HEADER
FOR %a IN (%1) DO GOSUB START
GOTO EXIT
:START
GOSUB PUT_FILE
IFF %DDD_SCRLIN=23 THEN
SCREEN 23 8
PAUSE PRESS ANY KEY FOR NEXT PAGE....
SET DDD_SCRLIN=1
CLS
GOSUB HEADER
ENDIFF
RETURN
:PUT_FILE
SCRPUT %DDD_SCRLIN 0 %_FG ON %_BG %#NAME[%a]
SCRPUT %DDD_SCRLIN 10 %_FG ON %_BG -
SCRPUT %DDD_SCRLIN 12 %_FG ON %_BG %#DESCRIPT[%a]
SET DDD_SCRLIN=%#EVAL[%DDD_SCRLIN+1]
RETURN
: WRITE THE HEADER
:HEADER
SCRPUT %DDD_SCRLIN 0 %_FG ON %_BG FILENAME
SCRPUT %DDD_SCRLIN 12 %_FG ON %_BG DESCRIPTION
SET DDD_SCRLIN=%#EVAL[%DDD_SCRLIN+1]
SCRPUT %DDD_SCRLIN 0 %_FG ON %_BG --------
SCRPUT %DDD_SCRLIN 12 %_FG ON %_BG -----------
SET DDD_SCRLIN=%#EVAL[%DDD_SCRLIN+1]
RETURN
:EXIT
SET %DDD_SCRLIN=%#EVAL[%DDD_SCRLIN+1]
SCREEN %DDD_SCRLIN 8 DONE!!
Hope this is what you were looking for. Good Luck......
---
■ OLX 2.2 ■ hAS ANYONE SEEN MY cAPSLOCK KEY?
PCRelay:BAUDLINE -> #78 RelayNet (tm)
PCRelay:DCINFO -> #16 MetroLink International Network
4.10 DC Info Exchange MetroLink International Hub
------------------------------------------------------------------------
Echo Flag : Y Permanent: N Export: N Personal Read: N
BBS: ASTRIX Conference: 4DOS Imported: 7/10/1992
To: DEBBIE GORNEY Num: 13651 Date: 7/04/1992
From: JIM WETZSTEIN Re: 0 Time: 5:11 pm
Subj: NEW 4DOS Prvt: N Read: N
In that batch file I sent you, add the SETLOCAL and ENDLOCAL line
as shown below. Forgot to add that after I was finished debuging the
batch file. This will save your current environment and restore it
after it is done.
DDD.BTM
-----------------------
CLS
SETLOCAL
SET DDD_SCRLIN=1
.
.
.
:EXIT
SET %DDD_SCRLIN=%@EVAL[%DDD_SCRLIN+1]
SCREEN %DDD_SCRLIN 8 DONE!!
ENDLOCAL
---
■ OLX 2.2 ■ hAS ANYONE SEEN MY cAPSLOCK KEY?
PCRelay:BAUDLINE -> #78 RelayNet (tm)
------------------------------------------------------------------------
Echo Flag : Permanent: N Export: N Personal Read: N
BBS: ESCMAIL Conference: 4dos Imported: 7/11/1992
To: JOERI GOLSTEYN AND ALL Num: 405 Date: 7/04/1992
From: BILL HAYLES Re: Time: 3:41 pm
Subj: Aliases Prvt: N Read: N
Joeri, (and everyone)
FWIW, here are my favourite aliases:
9*99 `mode co80`
aliasfree `echo %_alias`
asc `echo The ASCII code is: %@ascii[%&]`
calc `echo The Answer is: %@eval[%&]`
cd *cdd
chr$ `echo The character is: %@char[%&]`
cls `*cls bri yel on blu bor red`
cpu `echo %_cpu`
delbaks `c:^cd\^global /h /i del %baks^d:^cd\^global /h /i del %baks^
e:^cd\^global /h /i del %baks`
diskfree `echo Disk free space is: %@diskfree[%&,k]K`
disktotal `echo Disk total space is: %@disktotal[%&,k]K`
diskused `echo Disk used space is: %@diskused[%&,k]K`
e exit
edit `c:\dos\editor %1`
edlin `c:\dos\editor %1`
env*ironment `echo %_env`
f*ind `e:\norton\ff.exe %1 /a`
l*ist `e:\utils\list %1 /J /8`
md `e:\utils\maketree.btm`
realias `alias /r e:\aliases.txt`
shell `echo Current Shell is No. %_shell`
tidy `wipedos^delbaks^e:\norton\sort^e:\recover`
tnt `e:\tnt1\tnt.exe /FBill /LHayles`
unarj `e:\arj\arj e`
uparj `e:\arj\arj a -r -jt`
unzip `e:\zip\pkunzip`
wipedos `for %%a in (c:\ d:\ e:\ f:\) xdel %%a4dosswap.* /N /R`
Hope these are of some use to some people <grin>
Bill//
----------------------------------------
TNT XL/v8.2
--- HALCYON 5.10
* Origin: Fox's Den BBS (0689) 827085 (2:440/28)
------------------------------------------------------------------------
Echo Flag : Permanent: N Export: N Personal Read: N
BBS: ESCMAIL Conference: 4dos Imported: 7/11/1992
To: BILL HAYLES Num: 432 Date: 7/07/1992
From: DOMINIC STRANGE Re: Time: 6:51 pm
Subj: Aliases Prvt: N Read: N
Hi Bill,
BH>diskfree `echo Disk free space is: %@diskfree[%&,k]K`
BH>disktotal `echo Disk total space is: %@disktotal[%&,k]K`
BH>diskused `echo Disk used space is: %@diskused[%&,k]K`
hate to say it, but these are boring <g>. Try this!
equt=set gtot=%@eval[%gtot + %nto]^set gfre=%@eval[%gfre + %nfre]
^set guse=%@eval[%guse + %nus]
disk=set nto=%@disktotal[%a:b]^set nfre=%@diskfree[%a:b]^set
nus=%@diskused[%a:b]^echo %a Drive %nto B Total %nfre B Free
%nus B Used^equt
total=echo Total disk space %gtot^echo Total free disk space %gfre
^echo Total used disk space %guse
percent=echo %@eval[(%guse / %gtot) * 100]%% Total disk space used
remvar=unset gtot^unset nto^unset gfre^unset nfre^unset guse^unset nus
chkds=set gtot=0^set gfre=0^set guse=0^for %a in (C D E F) do disk^echo.
^total^percent^remvar
^^^^^^^^^
Change this to your drive letters
Have fun
Cheers
Dominic
* SLMR 2.1a * How many babies can a motherboard have?
--- Maximus 2.01wb
* Origin: Golly! = A 4DOS BBS = [+44-734-320812] (2:252/21)
------------------------------------------------------------------------
Echo Flag : Permanent: N Export: N Personal Read: N
BBS: ESCMAIL Conference: 4dos Imported: 7/11/1992
To: ALLE Num: 439 Date: 7/05/1992
From: MICHAEL EICHHARDT Re: Time: 11:55 am
Subj: Aliases Prvt: N Read: N
Hello!
Here are some more aliases (note that I use '$' instead of '&' for parameter
completion):
: i don't like describe;-)
! D:\UTIL\NORTON\FI /c/p/l
: saves current dir on stack and use Norton's NCD to change to next
# PushD^IFF "%2"=="" THEN D:\UTIL\NORTON\NCD %1 >NUL^ELSE
%1^D:\UTIL\NORTON\NCD %2 >NUL^ENDIFF
: one back
## PopD
: shortcut for select
° IFF "%2"=="" THEN select %1 (*.*)^ELSE Select %1 (%2) %3$^ENDIFF
: some more shortcuts
cp c:\dos\xcopy
h History
l Dir /B
ls Dir /w/B/p
mv Move
rm Del /Q
xdel Select Del [%$]
: small calculator
bc IFF "%1"=="" THEN ECHO Usage : BC arithmetic-expr^ELSE ECHO
%@eval[%$]^ENDIFF
: swap beetween actual dir and top of dir-stack (use with #)
sw*ap SET _d=%_cwd%^PopD^SET _e=%_cwd%^CDD %_d%^PushD %_e%^UNSET _d _e
: use list instead of more
more IFF "%1"=="" THEN *List /S^ELSE *List^ENDIFF
: display directories
ddir *DIR /A:d
: list with SELECT if argument is missing
list IFF "%1"=="" THEN *Select /A-D *List (*.*)^ELSE *List %$^ENDIFF
Ciao |\/|
| |ike
--- Golded 2.32.B0212+
* Origin: Point 13 - HGS Cologne [V32B] (FidoNet 2:241/5002.13)
------------------------------------------------------------------------
Echo Flag : Permanent: N Export: N Personal Read: N
BBS: ESCMAIL Conference: 4dos Imported: 7/11/1992
To: MORRIS TURPIN Num: 435 Date: 7/08/1992
From: MAYNARD HOGG Re: Time: 1:54 pm
Subj: Date Prvt: N Read: N
MT> set lstdigt=%@substr[%_date,1,-1]
> iff %lstdigt eq 1 then ^ set ending=st
> elseiff %lstdigt eq 2 then ^ set ending=nd
> elseiff %lstdigt eq 3 then ^ set ending=rd
> else set ending=th
> endiff
>
>There is a small bug in %ending in that it will return 12nd and
>13rd instead of 12th and 13th. You can fix this up yourself or else
>delete these lines. If you decide to fix it up please post your
>results.
Here's a blatant ripoff of my recent contribution to the C Snippets
file: <grin>
rem Assuming American dates (mm/dd/yy)... <grin>
*set ordinal=%@substr[%_date,3,2]
if %ordinal gt 10 .and. %ordinal lt 20 *set ordinal=0
*set ordinal=%@eval[%ordinal %% 10]
if %ordinal gt 3 *set ordinal=0
*set ordinal=%@word[%ordinal,th st nd rd]
-- SPEED 1.10 #1086:
--- GEcho 1.00/beta
* Origin: SuperBBS Support/Sales/Beta Avxia_bbs Tokyo Line 1 (6:730/9)
------------------------------------------------------------------------
Echo Flag : Permanent: N Export: N Personal Read: N
BBS: ESCMAIL Conference: 4dos Imported: 7/11/1992
To: SCOTT WUNSCH Num: 443 Date: 7/09/1992
From: SCOTT SANDERS Re: Time: 1:22 pm
Subj: IFF question Prvt: N Read: N
SW> OFFLINE 1.39 * "Beam me up, Scotty!" "Aye, will a 2 x 4 do Captain?"
No no no, it's..
... "Beam me aboard, Scotty!" "Aye, captain, will a 2x4 do?"
^^^^^^
Hehehe, it's FUNNY that way. Anyway, this isn't the taglines echo,
so..
I've seen some 4dos prompts here lately, so here's mine:
:
: Prompts.Btm
: Alias Alt-Z (to run this file) and others are used with it
:
If /%PromptMode\ == /\ Set PromptMode=N
Iff /%PromptMode\ == /N\ Then
Iff /%_DV\ == /1\ Then
Prompt $e[s$e[1;1H$e[0;32mMemory:$s$e[1m%@DOSMEM[K]$e[0;32mk,$s$e[1m
%@EMS[K]$e[0;32mk$s$sDV:$e[1m$sON$s$s$e[0;32mNL:$s$e[1;32m$z$e[K$e[u$_
$e[34m[$e[33mF2$e[0;36m$qHelp$e[1;34m]$_$e[0;36m($e[1m$p$e[0;36m):$e[K$s
Else
Prompt $e[s$e[1;1H$e[0;32mMemory:$s$e[1m%@DOSMEM[K]$e[0;32mk,$s$e[1m
%@EMS[K]$e[0;32mk$s$sDV:$e[1m$sOFF$s$s$e[0;32mNL:$s$e[1;32m$z$e[K$e[u$_
$e[34m[$e[33mF2$e[0;36m$qHelp$e[1;34m]$_$e[0;36m($e[1m$p$e[0;36m):$e[K$s
EndIff
Set PromptMode=L
Quit
Endiff
Iff /%PromptMode\ == /L\ Then
Prompt $e[0;36m($e[1m$p$e[0;36m):$s
Set PromptMode=S
Quit
Endiff
Iff /%PromptMode\ == /S\ Then
Prompt $e[D
Set PromptMode=N
Quit
Endiff
Well, it might not work perfectly, but it's good enuf' for me.
Scott
--- GEcho 1.00/beta
* Origin: inSaNiTY..doN'T juST FReak ouT, go inSaNe! [HST/DS] (1:3815/101)
------------------------------------------------------------------------
Echo Flag : Permanent: N Export: N Personal Read: N
BBS: ESCMAIL Conference: 4dos Imported: 7/11/1992
To: ALL Num: 442 Date: 7/09/1992
From: DAVID SWARD Re: Time: 4:26 pm
Subj: inkey Prvt: N Read: N
Could someone tell me what's wrong with this - I've written my own
file/description lister, but the pause doesn't work. 4dos keeps giving me
the usage stuff for inkey :(.
rem ld.btm - lists files & descriptions w/ (broken) pause
rem by david sward
setlocal
if "%1"=="" (echo Usage: ld filespec ^ quit)
echo filename.ext description
echo --------.--- ----------------------------------------
set ld_lines=3
set ld_key=.
for %file in (%1) do (
iff "%@descript[%file]" ne "" then
iff %ld_lines eq %_rows then
inkey -- more -- %%ld_key
screen %_row 0 [put 10 alt-255's here]
set lines=1
endiff
screen %_row 0 %@name[%file]
screen %_row 8 .%@ext[%file]
screen %_row 14 %@descript[%file]
screen %_row 78
echo [put 1 alt-255 here]
inc ld_lines
endiff
)
endlocal
--- msgedsq 2.1
* Origin: chevy chase, md (1:109/70.871)
------------------------------------------------------------------------
Echo Flag : Permanent: N Export: N Personal Read: N
BBS: ESCMAIL Conference: 4dos Imported: 7/11/1992
To: KEITH ROLLAND Num: 426 Date: 7/08/1992
From: TONY DUNLAP Re: Time: 7:27 pm
Subj: Var expansion Prvt: N Read: N
> echo %whoami, %datecode, %site, miles:
> %sitemiles >> %DataDrive\%WhoAmI-%SiteNumber.mil
> The above works fine, however...
> echo %whoami, %datecode, %site, miles:
> %sitemiles >> %DataDrive\%WhoAmI%SiteNumber.mil
> The above creates a file named c:\junk\keithsit.mil
> Puzzling, no? :)
Yes, but simple to fix. Even though the docs are not real clear on this, if
you echo environment variables one right after another with nothing between,
you have to use a percent sign before AND after all but the last variable,
like this:
%WHOAMI%%SITENUMBER
(^^--note the 2 %'s)
instead of this: %WHOAMI%SITENUMBER ,which in your case tried to create a
file called keithsitenumber.mil but the filename was truncated after the
eighth character because 8 is the most you can have in a filename.
So changing the above to:
echo %whoami, %datecode, %site, miles: %sitemiles >>
%DataDrive\%WhoAmI%%SiteNumber.mil
will create the desired file in your case.
(even if you don't have to, it wouldn't hurt to always use %VAR% and avoid
having to track down things like this)
Later
---
* Origin: DISCOVER (1:2220/30.1)
------------------------------------------------------------------------
Echo Flag : Permanent: N Export: N Personal Read: N
BBS: ESCMAIL Conference: 4dos Imported: 7/11/1992
To: SYLVAIN BEAUREGARD Num: 392 Date: 7/06/1992
From: TONY DUNLAP Re: Time: 9:30 pm
Subj: Wish list Prvt: N Read: N
> A parameter to INPUT to limit the lenght of the input.
A workaround is to use inkey and append that keystroke to an environment
variable, then test the length of the variable.
Handling backspaces will require some ingenuity but....
Example:
:STARTPW
set password=
:GETKEY
if %@LEN[#%password] EQ 7 goto ENDPW :: for a 6 character limit
set keyin=
inkey /W20 %%keyin
if #%keyin EQ # goto ENDPW :: if they pressed enter
set password=%password%keyin
goto GETKEY
:ENDPW
> A password prompter, style: PASSW motdep /* /cs
Another workaround. Set fore/back colors to the same then using
the example above after each inkey use scrput to put the asterick on the
screen. For case-sensitive you can use %@ascii[] to test each character of
the password string.
Later
---
* Origin: DISCOVER (1:2220/30.1)
------------------------------------------------------------------------
Echo Flag : Permanent: N Export: N Personal Read: N
BBS: ESCMAIL Conference: 4dos Imported: 7/11/1992
To: REX CONN Num: 396 Date: 7/07/1992
From: MORRIS TURPIN Re: Time: 9:34 pm
Subj: Yet Another Suggestion... Prvt: N Read: N
I have a suggestion for 4DOS that I, and I think others, would find useful:
a new condition ISDISK to be used with the IF and IFF commands to test for
the presence of a disk in a specified drive.
ISDISK d:
If d: is a floppy drive and a disk is inserted, or if d: is a hard
drive and it exists, the condition is true.
DSKREADY.COM does a similar function and doesn't cause the floppy drives
to grind like %@ready[d:] does, but it is external and doesn't work very
fast. If you're not familiar with it, here is the script file:
N DSKREADY.COM
E 0100 08 C0 75 13 A0 5C 00 FE C8 B9 01 00 31 D2 BB 1B
E 0110 01 CD 25 72 02 30 C0 B4 4C CD 21
RCX
001B
W
Q
--- msged 2.07
* Origin: Ansi's Escape, Echo Point -- Ottawa, Ontario (1:163/140.3)
------------------------------------------------------------------------
Echo Flag : Permanent: N Export: N Personal Read: N
BBS: ESCMAIL Conference: 4dos Imported: 7/14/1992
To: DAVID GOODENOUGH Num: 106 Date: 7/11/1992
From: ERA ERIKSSON Re: Time: 5:06 am
Subj: 4dos And Lantastic c Prvt: N Read: N
* Quoting David Goodenough (1:125/20) to Hermod Pedersen on 07 Jul 1992:
>>> c:\lan\NET LOGIN/WAIT \\SERVER ?"NAMN: " `^`"L#SENORD: " etc.
>>> i.e. wrap up the ^ in ` characters. I couldn't try it with
>> That ought to do it - but it doesn't. The Lantastic BAT-file still
>> refuses to acknowledge the format - now it doesn't like the '
> guess I should have been a bit clearer, but I used the backquote
> (hex 60, very top left corner of the keyboard, same key as ~ ).
(Not on a Swedish keyboard, it isn't!)
Since there's been a lot of confusion about escape characters in this echo
lately, I'd like to try to list the possible remedies once and for all...
(It's all in the manual, if you look closely enough.-)
There are a number of special characters that 4DOS acts upon when parsing a
command line. These are
- redirection characters ( > < | )
- command separator ( ^ by default )
- colon, in some circumstances ( : )
- different kinds of quotes ( ' " ` )
- grouping characters ( [ ] ( ) )
- escape character (ctrl-X by default)
- environment variable reference ( % )
- word separator ( tab space )
You also cannot enter some characters (escape, backspace, enter) directly
from the keyboard.
And here are the remedies.
1. Backquotes will prevent any further processing of the stuff between the
backquotes. This includes spaces.
Examples:
echo `Funny characters such as ^ <ctrl-X> <ctrl-X>n >|<`
set trailingspaces=` `
Note that the <ctrl-X>n in the first example expands to a Carriage
Return.
2. The escape character will always guard the following character from
expansion by 4DOS. Some escaped characters have special meaning.
echo <ctrl-X>e[7;5m <ctrl-X>^ <ctrl-X>e[0m
This will send escape codes (ASCII 1Bh, produced by the code <ctrl-X>e)
which your ANSI driver, if you have one installed, will interpret. This
example produces a reverse-video blinking caret (note that this is
normally the command separator) with some spaces around it.
3. In addition to the above, the percent sign, which is used to reference
environment variables, can be escaped by itself, that is, two %s in a
row produce one % in the output.
echo %@diskfree[c:,k]k free (%@eval[%@diskfree[c:,k]/839]%%)
This calculates free disk space on C: and prints out a percentage of
the total available amount along with the number of kilobytes free.
Like this (note the one percent sign that survived the calculation):
1093k free (1.30274136%)
4. You can change the command separator, temporarily or permanently.
If you use GREP a lot, you certainly don't want ^ as your command
separator.
Check out SETDOS /C and the CommandSep directive in 4DOS.INI.
5. If you want to ALIAS or SET something, you can put it in a file and
read in the file with ALIAS /R or SET /R, respectively. No expansion
will be done until you use the alias or variable. Check the manual
for syntax, or just SET > TEMPFILE and use the resulting file as an
example.
For additional information, look in the manual.
I'm sure I must have missed something (just look at the time stamp of this
message) so I hope somebody else will add more.
I think I tested all the examples, but I'm not quite sure I typed them
right. Also, my own manual is on loan to a friend who has decided to try out
4DOS, so I haven't actually checked what the manual says. I might have missed
some special character.
If somebody feel like whipping up a FAQ for this area and wishes to use
this,
I'd be most flattered. Reposting etc is OK, too.
/* era */
--- 4dos 4.01/B && GoldEd
* Origin: Nobody Ever Reads Documentation o . (Ball point) (2:220/851.95)
------------------------------------------------------------------------
Echo Flag : Permanent: N Export: N Personal Read: N
BBS: ESCMAIL Conference: 4dos Imported: 7/14/1992
To: BILL HAYLES Num: 76 Date: 7/09/1992
From: ULF BARTELT Re: Time: 12:49 pm
Subj: Aliases Prvt: N Read: N
Hi Bill!
Saturday July 04 1992 15:41, Bill Hayles wrote to Joeri Golsteyn And All:
BH> calc `echo The Answer is: %@eval[%&]`
CALC=keystack "calc %@eval[%&]"
Using this alias, CALC [expression] will keystack CALC [result_of_expression]
with the cursor behind these characters...
It's nice to get these intermediate results...
ATH0,
Ulf
--- GoldED 2.40.P0623
* Origin: ...can't boot the real thing... (2:241/4530.2)
------------------------------------------------------------------------
Echo Flag : Permanent: N Export: N Personal Read: N
BBS: ESCMAIL Conference: 4dos Imported: 7/14/1992
To: ALL Num: 63 Date: 7/08/1992
From: MICHAEL JERKOVIC Re: Time: 7:08 am
Subj: History Duplicates Prvt: N Read: N
Ive just discovered offline message reading and have noticed quite
a bit of chat about removing duplicates from history lists. So I
thought I might contribute a btm Ive written that gives a
spiffy display while doing the job.
To recreate the btm, cut the code between the ^^^'s and vvv's.
You will then need to join all lines beginning with +++ to the previous
line. For example, the line "alias get_bar ...." is split over four
lines.
If you are a windows user, you may have trouble seeing the line draw
characters. You can view/edit the file in windows if you use an OEM
font, eg the terminal font.
Feel free to use, modify or kick around the code in any which way you
want.
...mic...
vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
@echo off
goto start
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
COMPHIST.BTM Michael Jerkovic
Jan 1992
Melbourne, AUSTRALIA
Comphist is a 4DOS btm that removes duplicate entries in the 4DOS
internal history list. It uses only the dos sort utility and 4dos
commands.
Comphist is not not the most efficient method of compressing your
history, however it does provide stats and a progress indicator
to make the process interesting.
Comphist will work with 25, 40 or 50 line displays.
Configuration:
1. The process requires the creation of a temporary output file.
See "set tmp=%@unique[e:]". The "e:" refers to my ram drive.
If you have a ram drive replace "e:" with the appropriate drive.
If you dont have a ram drive, use a hard drive.
2. The process assumes you have the dos utility sort in your path.
See "history | sort > %tmp". If sort is not in your path, or if
you would prefer to use a more powerful sort utility, you will
need to modify this line.
___-----------------------------------------------------------------------
:start
setlocal
set tmp=%@unique[e:]
history | sort > %tmp
if %@lines[%tmp]==0 (beep ^ echo Error: History only contains the
+++ last command.^quit)
history /f
set pos=%_row
if %pos gt %@eval[%_rows-7] (cls ^ set pos=0)
text
+------------- Compressing History ------------+
| |
| Processed commands, leaving active. |
| |
| XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX |
+----------------------------------------------+
endtext
alias showcnt scrput %@eval[%pos+2] %%1 bri yel on bla %%2
alias inc `set %1=%@eval[%[%1]+1]`
set z=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
alias get_bar `set bar=%@eval[%1*%@eval[40/(%@lines[%tmp]+1)]]^
+++iff `0%@substr[%bar,%@len[%@int[%bar]]]` gt `.5` then ^
+++ set bar=%@substr[%z,0,%@eval[%@int[%bar]+1]]^else^
+++ set bar=%@substr[%z,0,%@int[%bar]]^endiff`
alias display_bar if %%@ascii[%%bar] ne 0 scrput %@eval[%pos+4] 19
+++ bri %_fg on %_bg %%bar
set i=0
set j=0
:top
set x=%@line[%tmp,%i]
if "%x" == "**EOF**" (del %tmp /q^endlocal^quit)
if "%x" != "%oldx" (history /a %x^inc j)
inc i
showcnt 28 %i
showcnt 50 %j
get_bar %i ^ display_bar
set oldx=%x
goto top
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
___
X WinQwk 2.0 a#0 X Unregistered Evaluation Copy
--- Squish v1.00-OS/2
* Origin: The Lightning BBS - Don't Worry... Be Happy... (3:634/383)
------------------------------------------------------------------------
Echo Flag : Permanent: N Export: N Personal Read: N
BBS: ESCMAIL Conference: 4dos Imported: 7/14/1992
To: DAVID SWARD Num: 107 Date: 7/10/1992
From: BOB CAMPBELL Re: Time: 9:28 am
Subj: inkey Prvt: N Read: N
> Could someone tell me what's wrong with this - I've
> written my own file/description lister, but the pause
> doesn't work. 4dos keeps giving me the usage stuff for
> inkey :(.
Try this:
setlocal
if "%1"=="" (echo Usage: ld filespec ^ quit)
echo filename.ext description
echo --------.--- ----------------------------------------
set ld_lines=3
set ld_key=.
for %file in (%1) gosub routine
cancel
:routine
iff "%@descript[%file]" ne "" then
iff %ld_lines eq %_rows then
inkey -- more -- %%ld_key
screen %_row 0 [put 10 alt-255's here]
set lines=1
endiff
endiff
screen %_row 0 %@name[%file]
screen %_row 8 .%@ext[%file]
screen %_row 14 %@descript[%file]
screen %_row 78
echo [put 1 alt-255 here]
inc ld_lines
return
endlocal
--- OPMED 3.00
* Origin: 4DOS leaves command.com in awe (1:119/911.1)
------------------------------------------------------------------------
Echo Flag : Permanent: N Export: N Personal Read: N
BBS: ESCMAIL Conference: 4dos Imported: 7/14/1992
To: ALL Num: 101 Date: 7/11/1992
From: DAVID SWARD Re: Time: 3:21 pm
Subj: ld.btm Prvt: N Read: N
Hey all,
I fixed the problem. Apparently INKEY doesn't like to be part of a long,
parenthesised expression since when I moved it to a gosub'd subroutine it
worked. Here is the finished ld.btm -
rem lists files with descriptions w/ pause
rem by david sward
setlocal
if "%1"=="" (echo Usage: %0 Filespec ^ quit)
echo Filename.ext Description
echo --------.--- ----------------------------------------
set lines=3
for %file in (%1) do gosub desc
endlocal
quit
:desc
iff "%@descript[%file]" ne "" then
iff %lines eq %_rows then
set ans=Y
inkey /K"YN [Enter]" more? [Y/n]: %%ans
screen %@eval[%_row-1] 0 [put 12 alt-255's here]
if "%ans"=="N" quit
set lines=1
unset ans
endiff
screen %_row 0 %@name[%file]
screen %_row 8 .%@ext[%file]
screen %_row 14 %@descript[%file]
screen %_row 78
echo [put 1 alt-255 here]
rem inc is an alias - inc=set %1=%@eval[%%1+1]
inc lines
endiff
return
--- msgedsq 2.1
* Origin: chevy chase, md (1:109/70.871)
------------------------------------------------------------------------
Echo Flag : Permanent: N Export: N Personal Read: N
BBS: ESCMAIL Conference: 4dos Imported: 7/14/1992
To: JASON FESLER Num: 126 Date: 7/08/1992
From: WIM JANSSEN Re: Time: 1:01 pm
Subj: Renumbering Netmail Messa Prvt: N Read: N
> Looks ugly here, sorry. Can't post high-ascii characters here.. but it
> _does_ look good when it's running.
You are right! It's nice... But there is one thing you overloked. There can
be big hole's in the *.Msg base.. And when you do eg. a INC funtion until 200
before beginning the renumbering, that's a loss of time...
4Dos gives you an opportunity to give you a correct numerical sorted list
so...
Why shouldn't we use that? ;-)
_____O/_____
O\
SetLocal
Alias INC=Set %%1=%%@Eval[%%[%%1]+1]
Color Bri Yellow On Black
Echo -=[ReNumNet]=- (C)1992 By: Jason Fesler
Echo Update: 7 July 1992 By: Wim Janssen (2:512/32.9)
Echo.
Color Bri Cyan On Black
If "%1" == "" (
Echo Usage: ReNumNet %@char[175]NetmailPath%@Char[174]
Goto Out
)
Cd %1
If Not Exist *.Msg (
Echo No *.Msg Found in Directory: %_Cwd!
Goto Out
)
Echo Renumbering *.Msg in Directory: %_Cwd
Set Tmp=%@Unique[%_LastDisk:\]
Dir /B *.Msg >%Tmp
Set Count=0
Set RnCnt=0
Color Cyan On Black
:Loop
Set OldName=%@Upper[%@Line[%Tmp,%Count]]
Set NewName=%@Eval[%Count+1].MSG
Iff "%OldName" NE "**EOF**" Then
If NOT Exist %NewName (
Ren /Q %OldName %NewName
INC RnCnt
Echos %@char[13]Renumbering %OldName -%@char[16] %NewName
)
Else Goto End
EndIff
Inc Count
Goto Loop
:End
Del /Q %Tmp
Echo.
Echo %RnCnt messages renumbered.
Echo Done!
:Out
EndLocal
Color White On Black
Quit
_____O/_____
O\
Groetjes, .
\\'I,\\
--- FM 2.02
* Origin: Point of "The Ultimate", 31-53-303902/328506 (2:512/32.9)
------------------------------------------------------------------------
Echo Flag : Y Permanent: N Export: N Personal Read: N
BBS: ASTRIX Conference: 4DOS Imported: 7/16/1992
To: GISLE VANEM Num: 13814 Date: 7/13/1992
From: NATHAN MELHORN Re: 0 Time: 7:04 am
Subj: FOR/NEXT LOOPS Prvt: N Read: N
Gisle,
GV> I have discovered a problem with a FOR loop. I used this command to
GV> compress my COM/EXE files:
GV> global for %%f in (*.com *.exe) ( if %@filesize[%f,b] gt 4096 pklite
GV> -n %f
GV> )
GV> When a file has been compressed, PKLITE will later in the loop inform
GV> me that the file is already compressed. Although the name and
GV> date/time is unchanged, 4DOS gets confused and treats the file as a
GV> new file. Why?
You've heard Rex's explanation. Now here's a workaround: you
have your global/for structure create a .btm file to execute.
Note that you can do this with a pause in-between, if you want to
review what it's going to do. That's always good when trying out
a new .btm or alias!
The following hasn't been tested!
(
echo @echo off >c:\temp.btm
global for f in (*.com *.exe) do (
if %@filesize[%f,b] gt 4096 (echo pklite -n %f >>c:\temp.btm)
)
rem - the first time, you should just review the file here -
call c:\temp.btm >c:\temp.log
del c:\temp.btm
)
The outer parentheses are to let me enter this all at the
command line, and could be omitted for a batch file. I start out
putting in too many parentheses, thinking that's safer. Echoing
batch output to a file might be chancy if 'lite queries you about
optimizing relocations, which is a good thing to do; however,
you'll also have to answer the question about overlays alot.
BTW, on my disks, the cluster size is 2048, so that's the limit
I would probably set. Are your partitions very big, or too small?
For backup, etc., I usually figure I should even 'lite the smaller
files. If there are some forbidden files, it would be amusing to
write the .btm to account for that.
<< regards, Nate -- Mon 07-13-1992, 07:20 >>
PCRelay:CHANNEL -> #15 RelayNet (tm)
PCRelay:DCINFO -> #16 MetroLink International Network
4.10 DC Info Exchange MetroLink International Hub
------------------------------------------------------------------------
Echo Flag : Y Permanent: N Export: N Personal Read: N
BBS: ASTRIX Conference: 4DOS Imported: 7/16/1992
To: PAT SHANAHAN Num: 13787 Date: 7/13/1992
From: DENNIS MCCUNNEY Re: 0 Time: 4:31 am
Subj: GREAT BAT... (1/2) Prvt: N Read: N
PS> MB│ For those who are leary of importing an unknown debug
PS> │ script, I'm posting the XXencode version of the file.
PS> │
PS>
PS> Please explain the 'XXencode' version of the 4DOS batch file posted. How
PS> do I decode this to utilize the file?
I don't know why he did that. The BTM file was smaller than the
XXencoded post he did send. XXencoding is a technique used for sending
8 bit binary files over 7 bit comm links. An XXencoder converts the
file into a 7 bit ASCII format,and an XXdecoder can reconstruct the
original 8 bit file at the other end. You would need DOS versions
of XXENCODE/XXDECODE. If you want them, I have a set that I can post as
a debug script.
Meanwhile, the BTM file follows:
setlocal
set di=gosub sdi
set dah=gosub sdah
for %%w in (%&) do gosub word
endlocal
quit
:word
echo. ^:: blank line for new word
beep 20000,10 ^:: pause between words
set w=%@upper[%w]
set l=%@len[%w]
set ci=0
:iter_1_start
if %ci ge %l return
set c=%@substr[%w,%ci,1]
gosub char
set ci=%@eval[%ci+1]
goto iter_1_start
:char
echos %c
if %c==A (%di^%dah)
if %c==B (%dah^%di^%di^%di)
if %c==C (%dah^%di^%dah^%di)
if %c==D (%dah^%di^%di)
if %c==E %di
if %c==F (%di^%di^%dah^%di)
if %c==G (%dah^%dah^%di)
if %c==H (%di^%di^%di^%di)
if %c==I (%di^%di)
if %c==J (%di^%dah^%dah^%dah)
if %c==K (%dah^%di^%dah)
if %c==L (%di^%dah^%di^%di)
if %c==M (%dah^%dah)
if %c==N (%dah^%di)
if %c==O (%dah^%dah^%dah)
if %c==P (%di^%dah^%dah^%di)
if %c==Q (%dah^%dah^%di^%dah)
if %c==R (%di^%dah^%di)
if %c==S (%di^%di^%di)
if %c==T %dah
if %c==U (%di^%di^%dah)
if %c==V (%di^%di^%di^%dah)
if %c==W (%di^%dah^%dah)
if %c==X (%dah^%di^%di^%dah)
if %c==Y (%dah^%di^%dah^%dah)
if %c==Z (%dah^%dah^di^%di)
echo.
return
:sdi
beep 1000,2
echos ∙
return
:sdah
beep 1000,6
echos ∙
return
PCRelay:RUNNINGB -> #3 RelayNet (tm)
4.11 Running Board 2126541349/DS/2125191791/HST/
------------------------------------------------------------------------
Echo Flag : Y Permanent: N Export: N Personal Read: N
BBS: ASTRIX Conference: 4DOS Imported: 7/16/1992
To: JOHN DURSO Num: 13775 Date: 7/11/1992
From: SERGE DELBONO Re: 0 Time: 7:27 am
Subj: If file older than XX Prvt: N Read: N
Dear John Durso :
On Thursday, July 9, 1992, you wrote to All Users, speaking about "If
file
older than XX":
JD>I've discovered that 4DOS batch file language is so powerful, so
JD>the following should be simple to do in it. Can you get 4DOS to
JD>look at the date of a file and , if its older than 15 days, have it
JD>do something. If not, it would continue with the batch?
Very easy, read the docs :-))
@echo off
rem === do it %1 ==
rem == replace # by at-sign (due to RIME bugs)
set filedate=%#date[%#filedate[%1]]
set today=%#date[%_date]
if %@eval[%today-%filedate] gt 15 goto doit
echo nothing to do
quit
:doit
echo do the stuff...
<
_>erge on Friday, July 10, 1992. MakeHead 2.2a. by S.D.
* OLX 2.2 * Tagline not found: Please notify your sysop!
■ SFMail Qwk v3.0
PCRelay:ALF -> #949 RelayNet (tm)
4.11 ∞ ALF BBS ∞ Versailles FRANCE ≡ 33-1-39504698
------------------------------------------------------------------------
Echo Flag : Y Permanent: N Export: N Personal Read: N
BBS: ASTRIX Conference: 4DOS Imported: 7/16/1992
To: JOHN DURSO Num: 13803 Date: 7/13/1992
From: TOM RAWSON Re: 0 Time: 12:20 am
Subj: If file older than XX Prvt: N Read: N
JD>I've discovered that 4DOS batch file language is so powerful, so
JD>the following should be simple to do in it. Can you get 4DOS to
JD>look at the date of a file and , if its older than 15 days, have it
JD>do something. If not, it would continue with the batch?
Sure. Try something like this:
if %#eval[%#date[%_date] - %#date[%@filedate[filename]]] gt 15 ...
... Tom
PCRelay:CHANNEL -> #15 RelayNet (tm)
------------------------------------------------------------------------
Echo Flag : Permanent: N Export: N Personal Read: N
BBS: ESCMAIL Conference: 4dos Imported: 7/17/1992
To: TOM HALL Num: 179 Date: 7/13/1992
From: DOMINIC STRANGE Re: Time: 7:41 pm
Subj: Aliases Prvt: N Read: N
Hi Tom,
TH>Boring _your_ aliases definitely are NOT! Thank you for the routines;
they
TH>provide something I've had at the back of my mind for a long time!
I'll try to keep up the good work ;-) Meanwhile, here's another one
for the collection (but only if you took advantage of a recently posted
batch file CD replacement {Original posted by ED Blackman, Thanks ED! })
If anyone want's the original batch let me know and I'll repost it as I
still use it for the scan routine.
Here's the modified form ro aliasing
___---------------------------------------------------------------------
cd=IF #%1 EQ # NOPARAM^C:\DOS\FIND "%@UPPER[%1]" < D:\BATCH\ND.DIR > D:\BATCH
\ND.DR1^TYPE D:\BATCH\ND.DR1 | INPUT %%ND^IF "%ND"=="" NOTFOUND^cd1
cd1=IFF EXIST D:\BATCH\ND.DR1 .AND. %@LINES[D:\BATCH\ND.DR1] GE 1 THEN^
ET LN=%@LINES[D:\BATCH\ND.DR1] ^ ELSE ^ CDD %ND ^ QUIT ^ ENDIFF^cd2
cd2=CLS^SET TEXT=Press the cursor keys to select, [Enter] to choose, or [Esc]
to quit.^SET CDIR=%@SELECT[D:\BATCH\ND.DR1,4,5,24,75,%TEXT] ^UNSET
TEXT^cd3
cd3=IF "#%CDIR" EQ "#" NOPARAM^END
NOPARAM=echo.^echo No directory specified.^echo.^echo Usage: ND [Directory
name or partial directory name]^QUIT 2
NOTFOUND=ECHO.^ECHO ND: Directory "%@UPPER[%1]" was not found!^ECHO.^QUIT 2
END=CDD %CDIR^UNSET CDIR
I store the user files in the batch dir but change it to whatever you want
Cheers
Dominic
* SLMR 2.1a * Life is sexually transmitted and terminal.
--- Maximus 2.01wb
* Origin: Golly! = A 4DOS BBS = [+44-734-320812] (2:252/21)
------------------------------------------------------------------------
Echo Flag : Permanent: N Export: N Personal Read: N
BBS: ESCMAIL Conference: 4dos Imported: 7/17/1992
To: NEAL JACKSON Num: 148 Date: 7/13/1992
From: JULES DUBOIS Re: Time: 2:04 pm
Subj: Samples.btm Prvt: N Read: N
Hello, Neal!
On Sunday July 12 1992, Neal Jackson writes to all:
NJ> I am new to 4dos and have a question. Included in the 4dos docs
NJ> is a Sample.btm. One of the examples is a Onceaday.btm.
I'm running 4DOS 4.01B. I've found several problems with ONCEADAY. I think
these changes will fix it.
1) The comment says to reset LASTDAY but the leading ':' prevents
this from happening.
Replace: : lastdate=0
With: SET lastdate=0
2) We need to execute the _time function, not evaluate the _time
variable twice.
Replace: iff %time[%_time] gt %@time[06:00] then
With: iff %@time[%_time] gt %@time[06:00] then
3) My online documentation doesn't show a variable named _today
but there is a _date variable.
Replace: echo %@date[%_today] >! %_boot:\onceaday.dat
With: echo %@date[%_date] >! %_boot:\onceaday.dat
Hope this helps.
Jules
--- GoldED 2.40.P0623+
* Origin: Avogadro's Nbr V.32-Northglenn CO 303-280-2931 (1:104/717.1)
------------------------------------------------------------------------
Echo Flag : Permanent: N Export: N Personal Read: N
BBS: ESCMAIL Conference: 4dos Imported: 7/18/1992
To: TONY NUGENT Num: 208 Date: 7/15/1992
From: SCOTT WUNSCH Re: Time: 7:10 pm
Subj: Problem fine-tuning 4DOS Prvt: N Read: N
TN> INSTALL=c:\dos\pckwik\SUPERPCK.com /A+ /B+ /W+ /O- /Q+ ...
TN>
TN> The problem with this is that this leaves the program using 16K
TN> of my precious 640K. Is there any way to do an install and
With MS-DOS 5.0 by itself, no. With DR-DOS, yes. With QEMM,
yes. Now I'm sure one of those 'yes's matches your predicament, so
here's how to do it with both:
DR-DOS:
~~~~~~~~
HiINSTALL=c:\dos\pckwik\SUPERPCK.com
QEMM
~~~~~~
INSTALL=LOADHI.COM c:\dos\pckwik\SUPERPCK.com ...
-= Scott \\'unsch =-
... Black dress: The best thing for removing dog hair from the sofa.
--- Maximus/2 2.01wb
* Origin: The Green Zone - Regina, Sask, Canada (1:140/23)
------------------------------------------------------------------------
Echo Flag : Permanent: N Export: N Personal Read: N
BBS: ESCMAIL Conference: 4dos Imported: 7/19/1992
To: BILL HAYLES Num: 227 Date: 7/15/1992
From: DOMINIC STRANGE Re: Time: 10:29 pm
Subj: Aliases Prvt: N Read: N
Hi Bill,
BH>(high horse mode on)
BH>Aliases don't have to be exciting to be useful.
BH>Me? Boring??
I'll agree, some of my most useful aliases are to correct typo's <g>
(fit, dur & dor all give me dir)
others like
x=except (
just save typing and allow command completion to work!
BH>(high horse mode off)
BH>Yeah, s'pose you're right, they're not *that* exciting <g>
anther slightly less boring one for you though
ff pushd^for %a in (C: D: E: F:) do (%a^pushd^*cd\)^for %a in (C: D: E: F:)
do *dir %a*%1*.*%2* /p/b/d/f/s^popd^popd^popd^popd^popd
does exactly the same as anyother file finder except that it allows me to
find files that have a group of letters somewhere in them! either in the
filename or extention.
BH>DS> equt=set gtot=%@eval[%gtot + %nto]^set gfre=%@eval[%gfre + %nfre]
BH>etc, etc.
BH>Like it!. Have tidied it up and incorporated it into my aliases.txt.
always nice to be appreciated!
Cheers
Dominic
* SLMR 2.1a * Do NOT look into laser with remaining eyeball
--- Maximus 2.01wb
* Origin: Golly! = A 4DOS BBS = [+44-734-320812] (2:252/21)
------------------------------------------------------------------------
Echo Flag : Permanent: N Export: N Personal Read: N
BBS: ESCMAIL Conference: 4dos Imported: 7/20/1992
To: VIC BATES Num: 254 Date: 7/17/1992
From: STANTON HERSHMAN Re: Time: 7:47 pm
Subj: File Description Search Prvt: N Read: N
Vic-
This may not be exactly what you are looking for, but try it. You never saw
anything run this fast.
Part 1 of 3
N DFF.ARJ
E 0100 60 EA 27 00 1E 04 01 00 10 00 02 C3 C3 9C F1 18
E 0110 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
E 0120 00 00 44 46 46 2E 41 52 4A 00 00 AD 7B CB 42 00
E 0130 00 60 EA 27 00 1E 04 01 00 10 01 00 C3 A4 0B AF
E 0140 18 2A 23 00 00 AF 24 00 00 51 42 DB 3D 00 00 20
E 0150 00 00 00 44 46 46 2E 45 58 45 00 00 C4 47 15 CC
E 0160 00 00 23 D6 87 01 8F 58 53 1B D0 BF EF 7B DE F7
E 0170 BB BB DD DD CE 77 73 A0 5C F0 01 C2 51 28 00 1C
E 0180 12 3A 01 52 44 28 D9 0B 9D CA 5A 97 24 A1 E4 95
E 0190 24 AD 5B 12 5A 9A AD 54 D6 EA DA A2 51 55 56 95
E 01A0 6A 69 AB 52 B6 DC B9 69 2B 08 6E F2 DF 7F FF FE
E 01B0 FD F7 EF 9F B0 6E 38 2C 71 CD 0E 93 EE 02 10 00
E 01C0 06 01 68 19 65 E8 03 00 B9 66 05 86 5A 70 7C 86
E 01D0 9F 41 17 13 21 0C 4C 25 05 0A 87 52 73 6F 4F 4E
E 01E0 C4 A7 D0 49 C1 47 43 13 13 3F 32 EA 4C 14 F4 F1
E 01F0 31 D3 BA A9 C5 34 44 C7 4D D1 4D A8 A3 9B 9A 03
E 0200 88 19 C0 64 04 83 86 11 65 F2 44 A9 43 1D DF 01
E 0210 D0 01 27 CA CC F9 5A 20 59 44 2F 41 F8 3A CB F1
E 0220 2F 9F 12 06 0A 2C CD 3A E2 72 2B 7C 1F 90 03 C9
E 0230 A7 5C C9 5B 75 1F CF BA 03 B9 72 7D 28 80 B2 BD
E 0240 F6 BD AB 73 5D 07 90 BB 8D 3D C2 63 28 14 93 37
E 0250 3F 40 AB 55 38 4E AE 6F 57 40 A2 91 B3 FD AC BF
E 0260 8F A7 BA 74 13 C9 D2 5E 59 4B EB 3B 85 75 92 FA
E 0270 CA EC DE FA 3E 5F AB C2 3E AF DA 7E B6 E2 B6 FF
E 0280 DF 6B 95 5B E5 30 3F 4C 01 3B E2 F2 37 9D 03 E0
E 0290 5C E7 5D C8 DE 73 0F AE CE FF C1 79 FF 82 F9 FF
E 02A0 07 4D FF 06 5B FE 0E 9F E4 15 06 78 77 BE C8 A5
E 02B0 3F 0A 2C 77 7E C3 BD FF C8 AE B5 EF 83 E4 2E AD
E 02C0 EF 82 A2 FD 4E 63 E4 57 4E F7 C0 AF 24 75 06 F2
E 02D0 CB 54 2F C9 52 F7 C0 EB 57 B8 96 09 5F C4 85 2A
E 02E0 5D EF E9 FE 21 A9 72 F9 23 F0 54 35 FC 85 C0 FF
E 02F0 CB 03 E9 FF 85 FF F5 05 79 21 D1 31 3A D5 F4 E7
E 0300 C2 E3 D5 DF 49 15 8C 97 DF 91 EF 6E E1 E4 CB 2E
E 0310 A6 FF E4 43 2A 2F FF F8 FC C2 8E D7 FE 9F 4D E9
E 0320 FD C1 B5 FD D7 74 78 E1 F5 D5 FE 80 7D 2D 56 CF
E 0330 4A 52 EA 7B A3 EE F7 1C 7D CF A4 F7 20 4B AA DB
E 0340 8E 46 F5 B8 2C CE 07 C5 76 16 59 B9 15 BD EE 41
E 0350 5E 7C 9E 40 97 D1 FC 84 F5 BD 6A DF 2B BD C1 57
E 0360 C5 75 CA EF 14 B4 AC 32 B1 FB 42 00 32 05 1B FE
E 0370 F5 80 07 30 64 D0 41 80 02 0A 30 E0 FF F7 D9 74
E 0380 44 1B 39 97 ED 80 3D 80 03 05 22 56 15 36 15 B0
E 0390 24 E4 91 22 BC 4D 8A 7A F3 6B 2C 58 4B 40 0E 69
E 03A0 C8 8B 43 21 59 68 4C D8 A7 5B 92 D9 4F D5 01 01
E 03B0 9B B8 54 72 F0 74 61 04 D4 3B 38 14 04 98 C9 6F
E 03C0 24 84 B7 5A 61 97 76 AC 8D 31 92 1F BC 20 52 22
E 03D0 DD 74 87 39 9D 22 0D 02 0A 5E 35 92 0D 49 BA 51
E 03E0 43 D8 AB 8E 34 59 0B 1D 48 E8 4D C7 22 AB 91 95
E 03F0 6F 68 15 2D C1 A2 CD ED 1C 9C 2D 10 04 B3 48 75
E 0400 0C 46 21 D5 83 90 9D 60 67 B9 92 1C 56 D6 CB 0C
E 0410 A6 50 D3 C0 85 B2 13 07 30 11 49 87 1B 0E 29 9A
E 0420 AB 6B A4 2C 89 42 2A E0 C5 88 33 24 5D 86 51 5F
E 0430 50 7F 73 23 42 B8 0C D2 93 C6 DD 20 DB 69 B0 7B
E 0440 60 3C E1 9E AB 83 2B A5 E5 59 9A D2 49 2D E8 87
E 0450 63 E1 14 AC 33 78 AA 91 2C 74 5E 1B 0F 1D 87 35
E 0460 60 04 D5 60 00 B6 25 5F 62 ED B7 66 83 52 62 C5
E 0470 D0 90 2E DD 41 8B 5C 85 FA 13 F3 85 7E 85 B3 4E
E 0480 33 D3 F6 84 63 8F D1 8E 0E 03 34 3F 68 86 6A 5D
E 0490 C6 4D 08 DC 14 8B 5F 65 94 24 B2 1E 8D FD E0 E6
E 04A0 7F 05 DB AA E0 4D BC 2E AA 32 C6 1A 23 34 C9 95
E 04B0 BE A5 54 3F 4F A1 83 4B 94 A8 B9 B1 14 B3 F3 8D
E 04C0 50 0F 40 23 3E 3D 3F B5 5E CE 0B 06 30 BA E5 BE
E 04D0 D2 0E 60 C3 17 55 B4 90 E9 D5 51 AF A7 5E 1D 44
E 04E0 50 D7 A1 97 5B 8B FB 88 41 93 B4 E2 06 50 01 47
E 04F0 95 83 A6 0A B8 A9 61 CA 31 55 B5 95 2D 3C D4 8A
E 0500 D4 A3 57 E9 7E 21 00 EC 96 DD EB A5 86 C3 59 7D
E 0510 5B 71 CF 2C B0 01 DE E3 13 93 8D 7A 97 E3 B6 5F
E 0520 7B 83 89 6A 87 B1 11 65 89 C3 96 A7 96 2E 95 2F
E 0530 3C 40 03 D6 E5 D2 97 2F A5 D2 05 67 79 CC C5 5B
E 0540 42 DF 98 8A A4 D9 11 D3 E4 39 D9 47 11 8E B8 7A
E 0550 EB BD AA 7B 16 F0 17 CE D2 AD EA 8A 14 56 A9 FD
E 0560 4B BB F7 3B 36 F8 8D 21 85 01 4E 15 BC A8 FD 7E
E 0570 66 03 B1 A5 76 BE B1 63 EE F6 70 2B 9D 2B A4 BB
E 0580 7E 6E 9D C8 1E 46 E0 46 A2 36 F1 C4 D5 15 F5 69
E 0590 D5 DC 18 D9 04 F6 A9 BA AC C3 E7 80 23 A8 EA F9
E 05A0 52 D1 C6 6B 8E C1 01 61 54 3C 2F 19 8C 32 A9 51
E 05B0 70 FA 0D 6C F7 62 C1 54 F4 B6 EE 68 C5 F0 76 40
E 05C0 D3 39 E8 52 42 CB AA 38 50 E3 3B 69 9F 31 A9 7C
E 05D0 8B 8D 93 EF A6 B6 26 66 5B 67 4E 62 00 0A 51 8E
E 05E0 8F 4B EB F9 C2 81 A1 13 06 A5 7A EB FA AA 3C AA
E 05F0 77 F3 C1 38 8C 4B E9 86 53 0A A0 16 D7 D9 29 31
E 0600 66 7F 7D EE D6 81 B2 AC 54 EB 3A DA 8C 03 43 08
E 0610 6C B7 93 81 0A 40 4B 7E C7 89 66 4F 2B 27 63 79
E 0620 5E C8 BB 6D 88 73 A3 15 6C 70 34 CC FA 12 1C 3A
E 0630 88 0C 2D E3 9E D5 F5 9D 50 11 DB 32 CD 28 9C 70
E 0640 99 AE 31 AF 92 F0 81 A0 DD CB 69 CA FE 34 D7 55
E 0650 DB 44 FD DD FF 75 2D C2 0E 36 1E 57 BE AB 6B A9
E 0660 C8 5E 0E CE 68 50 99 29 50 AC 6A 09 DA E3 8F F4
E 0670 69 49 CE 5A 38 5B 29 35 66 3B D0 F1 EE D0 3B 1F
E 0680 EB 6F CE 9C B8 A5 15 AE 44 DB 7E DF 6A 91 CF 67
E 0690 07 60 1C 9F 4F 0D 84 AF 7A 6F 5B 04 72 C7 5B CB
E 06A0 7C DE 6A D7 35 87 B7 D9 F6 0F 9D 83 69 FE 1B 2C
E 06B0 4E B9 74 DE C2 9E 64 6D 4F 8B 68 C7 A1 EF 8B D1
E 06C0 7E E8 89 D1 2E 8C 55 BC D6 3C 89 16 54 41 11 87
E 06D0 33 3A 26 DD 37 6D 3A C2 63 83 51 FB B5 66 47 AE
E 06E0 C3 F0 09 83 D6 07 68 AE 76 A4 B0 F7 89 5F C4 29
E 06F0 32 F2 C4 8C CF D3 E7 B4 66 24 D6 CC 4B FA 67 C5
E 0700 6A B8 1A 4F 68 7C D8 EB 22 02 C8 AB AF 59 15 AE
E 0710 59 A0 D8 38 A7 22 88 75 B6 63 6C 96 89 FC AD 12
E 0720 1B 87 F7 6B 13 7A E2 79 A9 34 49 0D A4 44 71 8F
E 0730 D4 26 02 DF D0 51 95 C6 A6 FE 4A 92 5A 12 6C 86
E 0740 19 2C A4 C2 1F D5 1C 2A EC 43 FD 9D 4B E3 46 C5
E 0750 17 55 A7 9A B5 2B 56 8F AE 9F 71 C8 D2 17 55 6D
E 0760 1C 0C FE 46 7F 28 21 C8 09 85 1D B4 E1 C0 B3 84
E 0770 1E 09 96 5D A6 C0 01 58 0A 73 A8 56 4F 4A 70 2C
E 0780 A1 34 6D 29 30 D2 1F 49 72 D3 02 04 9C 54 98 E5
E 0790 12 E3 46 2A BA 5F 5B AA BA 70 1A CF F9 FD 07 D5
E 07A0 6C 58 D8 69 F3 8E 26 2F 20 01 DE A0 2C 71 42 93
E 07B0 92 29 7F 7B C2 69 60 51 5A 79 DA AD 4E B3 3D 7D
E 07C0 1D 04 ED B7 D3 37 F0 78 DD E6 2C D4 2F FB 30 79
E 07D0 1D 8C C6 61 13 4C 47 85 FB 1C D9 76 13 05 D5 5A
E 07E0 F5 BF 71 77 66 AC B3 22 DB 62 4F 42 E0 01 7C 99
E 07F0 52 D5 06 7B BC 27 3C 78 27 5C 9D 64 4C 48 51 82
E 0800 C9 60 32 BE E6 65 54 B0 42 D8 1B BB 31 2A 68 70
E 0810 50 EF 21 34 F0 1C 5D AB FD 3E 10 7C A1 67 03 03
E 0820 E5 54 62 F2 A4 85 5C 14 49 BE C5 28 08 66 2B F5
E 0830 2B 11 5E 7D ED 48 C3 4A AA EB BE 7B 20 8A B9 49
E 0840 4B 01 D8 22 4A 2E 3A 2A CD 8C 44 62 22 71 B5 11
E 0850 00 87 C4 3D 5F 1C 21 C1 08 10 CF 11 58 83 F4 E4
E 0860 DA 91 C2 7C 3D 49 73 0E B6 AD 43 6E EF 83 69 63
E 0870 B6 92 39 79 CE 5C 72 C1 3A DF 74 75 97 35 5B E8
E 0880 15 61 D5 4F 2D 47 2C 4D 36 10 02 CC 19 AE 90 DB
E 0890 ED 41 AF D2 66 5B C4 91 37 6A 59 E5 7A 2F E0 E5
E 08A0 28 A7 69 46 EC 83 BF DD 6E BD E5 22 F4 95 B6 E1
E 08B0 04 EC 88 23 FC 30 F6 24 2C FC BD F4 65 B8 EE 06
E 08C0 B5 30 46 FD 2D AB 7D 7D 71 BF D1 94 72 0D 8A 82
E 08D0 59 2E 2E E9 E2 5B A0 B3 C3 05 9D 9D 16 09 34 98
E 08E0 91 71 3A 7A 7B 93 FE 62 1F 3B BA DF 36 15 75 88
E 08F0 23 1F 64 9C BB 17 C8 3F C1 03 39 85 8F 85 53 19
E 0900 2F BB 5F 57 72 E5 EA 96 6E 59 7D F9 7E 51 DE 95
E 0910 FA EE 10 CD ED 3A EF 62 CC 44 53 77 96 C6 D9 3E
E 0920 66 76 43 2C DB 02 07 B4 62 78 97 27 81 25 B7 A3
E 0930 C0 3F 4C 67 53 2D B7 4D 81 45 62 13 C4 B2 F7 6B
E 0940 09 8E 96 5B 88 B4 FD EC B7 21 79 04 F2 D5 C3 E0
E 0950 15 FA D4 E5 B8 5E 0E 09 35 3A F1 29 4D 1C BB 09
E 0960 CD DF 45 04 D6 CE AF 65 80 40 DC DF 27 37 CF 55
E 0970 24 F5 19 94 6D 84 EF 62 D3 DC 1C 8F 1F 5C 5B 9A
E 0980 A1 0B 41 23 70 70 4B 5B B0 02 49 69 B4 1F D3 DD
E 0990 DF FB E2 33 C0 20 8B 0C AB C4 C7 82 C8 05 CE 29
E 09A0 52 59 09 D3 AE 66 AE 2B E3 AD 16 AC 6A 97 04 FC
>> Message length exceeded, split by WILDMAIL! v2.04 <<
>> Continued in next message <<
------------------------------------------------------------------------
Echo Flag : Permanent: N Export: N Personal Read: N
BBS: ESCMAIL Conference: 4dos Imported: 7/20/1992
To: VIC BATES Num: 255 Date: 7/17/1992
From: STANTON HERSHMAN Re: Time: 7:47 pm
Subj: File Description Search Prvt: N Read: N
>> Message length exceeded, split by WILDMAIL! v2.04 <<
>> Continued from previous message <<
E 09B0 02 B1 04 D0 D5 8B 52 35 5C 0E F0 E5 48 B1 30 6F
E 09C0 9D 95 7A FC 87 D6 1C EC 95 E0 E8 B5 92 F5 CE 0D
E 09D0 A1 7C EF C8 71 F7 42 AD 6B 5F B0 73 D1 BB B0 FF
E 09E0 34 B5 21 3A AD 11 23 8B E6 EB B5 59 BB 5E 29 3A
E 09F0 D4 C2 B6 83 1D F8 12 F4 6C B2 23 9B 74 32 79 5B
E 0A00 23 0A BD 48 C6 0D 26 6B DC B9 7F 68 71 88 46 81
E 0A10 C1 51 C6 95 7E A3 0A FB 72 ED 28 A1 45 A7 A5 7E
E 0A20 52 32 CA 1E 1F 13 D4 B2 62 76 1D A0 EF 00 C7 2C
E 0A30 6F 02 D6 D8 05 0D 66 CD 9B 46 3F 2C D5 CE C0 DE
E 0A40 C8 03 7E 46 0F 7D 8F 0C 49 58 38 92 96 E2 BC 72
E 0A50 F1 5C 27 31 F6 F9 46 CF AD 18 01 0A 65 DA 4E 48
E 0A60 B1 C7 0A CC CE 68 FF EA 62 96 92 9D FD 19 1D 78
E 0A70 35 05 BC CA 06 B7 A2 EA D5 86 3C 4B 2D DC 2B 5B
E 0A80 F8 DB 3F 3E 78 32 AE 9F 99 BB 91 0D 57 E8 98 6A
E 0A90 EF D5 0F AC B4 44 15 96 07 DE FF 9E 5C 8A 25 C3
E 0AA0 BD ED 59 1F AE 6E 9C 5B AD 4C 98 AB B2 BB C3 ED
E 0AB0 25 FA 8F 97 AA 3C BD 39 1E 33 AD 23 AD 9C 0A 6E
E 0AC0 F8 BD 75 9A 47 E7 B6 CD 5B F2 CE 39 0E C4 4E E8
E 0AD0 3F 02 1B 88 2C 8F A7 98 CE 43 F8 84 20 B5 74 23
E 0AE0 62 41 92 39 9B EE F9 0B F2 48 C6 23 E1 C4 9E 21
E 0AF0 E8 52 3D 79 69 15 04 79 C8 FC C8 D2 F9 3C 44 62
E 0B00 11 DB AF 34 44 A9 82 3A 84 2D 8C 64 B2 8B E9 32
E 0B10 81 66 6C 63 FC C3 F5 DC 38 C3 78 BB 2F 77 2D 66
E 0B20 75 05 93 A6 AD CE 08 8B 0C B5 7D 69 15 84 5B 65
E 0B30 AB EC C8 BF 23 5D B4 9E 21 A0 74 59 74 B2 E4 4D
E 0B40 11 67 97 4B A4 23 00 84 FB A8 72 19 F6 09 B2 4E
E 0B50 6B 78 23 46 CB 30 F5 3C F1 CB 00 EE 0C EE A2 AF
E 0B60 A9 DC 69 2B A9 A4 42 E5 D6 AF B7 64 3B 9C F5 55
E 0B70 6F DA 2D CF 55 A4 03 33 03 EB 25 28 8B 19 01 A4
E 0B80 CC 55 A6 1A 04 56 4E E1 F7 D2 15 0B CA 3A BB E0
E 0B90 1B 82 24 8E F7 15 B7 D6 E8 39 A7 D1 80 0A F2 4F
E 0BA0 A9 3B 8A 3E D8 53 2A 87 B3 DA 0B 03 CD 44 BB 3F
E 0BB0 04 D0 DD 6E 30 1D A2 9F 43 A2 0F B8 4F 4E A4 32
E 0BC0 9E 40 88 30 25 C6 A6 5E 03 EA 04 E9 0D 90 0B 2A
E 0BD0 DF 1D 37 56 59 06 4D 11 F4 6D 0B 71 82 83 B3 8D
E 0BE0 F4 8A B0 B8 B0 20 CE 53 FA 97 BC D5 37 6C 0C 0D
E 0BF0 AE 30 02 4A BB E5 8B E0 F3 C4 3C DA 51 98 13 1A
E 0C00 A8 22 21 2B 2E 92 F9 B1 AF ED E2 9C 1E 6B 01 64
E 0C10 93 D8 61 19 8C AE 9D B1 BE 7C BA 04 BF 9C 42 08
E 0C20 4F 7D B4 5B E0 06 DD 08 AE 71 68 41 BB FB 0B 79
E 0C30 3C 82 15 AC E0 A4 19 5A AF 13 88 41 F0 2C AB E7
E 0C40 AC 11 5E CC 0F 37 83 EB CC 51 9E 43 F4 04 B7 FD
E 0C50 0F 3B CC 2C 09 CB 46 C3 4C 1F 32 D3 DA 61 60 33
E 0C60 A6 6A 92 5F 98 B2 B2 AC 1F CA 60 F3 43 03 6F 42
E 0C70 BC E9 16 48 34 65 1E EA 91 E9 75 AD 1D 10 29 1B
E 0C80 BB CE 60 EB 0F 76 45 67 91 DD 5E CE FD E4 B4 9D
E 0C90 42 28 86 27 07 42 13 CE E9 43 17 65 8B F1 99 F1
E 0CA0 71 91 A2 75 3C 08 57 5F 4B CD 6D CB B9 6D CA DF
E 0CB0 80 9D DF 9E 70 1D 2E E9 8F 7F 11 49 C0 FF 22 F6
E 0CC0 5D A5 4C 8B BF 81 C8 02 43 1A 8C 6E 9E 29 8E 3D
E 0CD0 8E E7 8E BE E2 CA 05 48 51 16 D8 18 D0 5F 88 A0
E 0CE0 57 F6 38 8C C5 D3 DB 42 ED 14 11 8A D4 E1 D4 56
E 0CF0 87 70 C2 E0 44 0E 82 93 FA 86 23 A6 22 DE 16 78
--- msgedsq 2.1
* Origin: Cat's_Meow <From_The_Oldest_City_In_The_USA> (904)-794-1591
(1:3620/8)
------------------------------------------------------------------------
Echo Flag : Permanent: N Export: N Personal Read: N
BBS: ESCMAIL Conference: 4dos Imported: 7/21/1992
To: DARREN KAY Num: 285 Date: 7/17/1992
From: ANDREA MENNINI Re: Time: 11:14 am
Subj: 4dos in os2 Prvt: N Read: N
Hi Darren,
in your message of <Thursday July 09 1992>, you said that:
DK> I have justed installed os/2 2.0. I would like to be able to start a
"DOS
DK> Window" except that it starts 4dos.com instead of
DK> ..os2\mdos\command.com..?
DK> Can anybody recommend a way to have a 4dos box just like a dos box?
It's not clear from your message if you are not able to create a 4DOS box,
instead of a COMMAND.COM one, or you are not able to change the associated
icon. BTW, here are the answer for the two questions.
How to make a 4DOS box
----------------------
1) Get a DOS object
2) Click over the icon with the mouse right button
3) Click over the arrow near Open with the left button
4) Choose the Session Bookmark
5) Choose the session type (full screen or windowed)
6) Click over DOS settings
7) Choose DOS_SHELL
8) Type in the path of 4DOS.COM
9) Click save
10) Double click over the reduced icon in the upper left corner.
How to change the 4DOS box ICON
-------------------------------
1) Get the new 4DOS object with the old DOS icon
2) Click over the icon with the mouse right button
3) Click over the arrow near Open with the left button
4) Choose the General bookmark
5) Click on Edit
6) Look at the Icon Editor Title bar: it will be something like this:
Icon Editor - E:\WP!1.ICO
Write or remember the path
7) Choose File | Open and open the 4DOS icon
8) Choose File | Save as... and save it with the previous pathname (e.g.
E:\WP!1.ICO)
9) Exit from Icon Editor
10) Double click over the reduced icon in the upper left corner
Regards
Andrea, IK4FDQ
--- GoldED 2.40.P0623+ / Squish 1.01-OS2
* Origin: 4DOS is 4 DOS! (2:332/404.1)
------------------------------------------------------------------------
Echo Flag : Permanent: N Export: N Personal Read: N
BBS: ESCMAIL Conference: 4dos Imported: 7/20/1992
To: DOMINIC STRANGE Num: 248 Date: 7/17/1992
From: ERA ERIKSSON Re: Time: 12:44 pm
Subj: Post that prompt (was: De Prvt: N Read: N
* Quoting Dominic Strange (2:252/21) to Jamie Wither on 13 Jul 1992:
> PS Post that prompt! here's mine
How about a simplistic one? Note the magic with bright vs non-bright
attributes.
PROMPT=$e[s$e[0m$e[1;59f$d $t$e[u$e[0m($z)%p $p$g $e[1m
The "%p" is my dirlevel, i e how many directories I've pushd:d. I believe I
posted the P*ushd and PP/POPD aliases a few months ago, but if anybody cares
to see them again, I'll be happy to oblige.
/* era */
--- 4dos 4.01/B && GoldEd
* Origin: root:V9zG.Iy.9ndH2:0:0:era, o . ,,:/:/bin/bash (2:220/851.95)
------------------------------------------------------------------------
Echo Flag : Permanent: N Export: N Personal Read: N
BBS: ESCMAIL Conference: 4dos Imported: 7/22/1992
To: SCOTT GILBERT Num: 301 Date: 7/19/1992
From: MICHAEL LOVELL Re: Time: 12:08 am
Subj: 4DOS "dir" Prvt: N Read: N
On 7-13-92 Scott Gilbert, in reply to Yves Lavoie said:
SG>Gee, my 'MORE' doesn't let me scroll/search at all. All it
>does is display a screenful, then pause. I'm running DOS
>3.3, so maybe MS improved the MORE program on later
>versions of DOS. I suppose one could write an alias that
>would use 4dos' LIST to get the scroll/search ability, but
>I find that the 'dir /p' works well for me.
Scott, try either of these and see if you don't like them as well or
better than dir/p
dl=*dir/2av >! c:\dirlist ^ *list c:\dirlist
This creates a two column directory sorted alphabetically by extension
with the subdirs first and redirects it to a file which is then loaded
into 4DOS's List viewer.
Or: dld=*dir/av >! c:\dirdes ^ *list c:dirdes
This loads a single column dir into list so that if you have
descriptions attached to files you can read them as well.
Of course this does creat 2 additional files in your root directory, but
unless you have completely unmanagable directories with hundreds of
files in them the created files shouldn't be too long. I'm sure there
would be a way to automatically delete the files when you exit List by
hitting the Esc key but I haven't taken the trouble to create it yet.
The ! after the redirection symbol (>!) is necessary on my system
because I have NOCLOBBER set in my 4DOS.INI file.
I personally have about a dozen different aliases for various forms of
dir madeup so I can fine tune my output to the situation but I realize
not everyone needs that level of control or would go to that much
trouble. But this gives you a general idea of the power and flexibility
of dir aliases that can be constructed. Enjoy.
Michael
* OLX 2.1 TD * Toto, I don't think were in DOS anymore
--- WM v2.03/91-0020
* Origin: Desktop Micro's BBS 309.662.2017 (1:232/302)
------------------------------------------------------------------------
Echo Flag : Permanent: N Export: N Personal Read: N
BBS: ESCMAIL Conference: 4dos Imported: 7/22/1992
To: TROY PRATHER Num: 318 Date: 7/18/1992
From: MIKE DUNNAGAN Re: Time: 8:58 pm
Subj: 4DOS and DRDOS 6.0 co Prvt: N Read: N
Troy:
On Tuesday July 14 1992 _Troy Prather_ wrote to Dann Lunsford:
TP> @PROMPT=$e[1;1f$e[47m$e[K$e[1;1f$e[1;37;41m $e[1;2f`%@DOSMEM[k]`K Free
TP> Mem $e[1;23f$e[1;37;41m $d $t$h$h$h Shell $c$z$f
TP> $e[1;64f$e[1;37;41m$e[K `%@DISKFREE[C:,m]`M Free On HD
TP> $e[1;36;44m$e[25;1f$p$g
I like to see other people's prompts. This one of yours is pretty cool. I
have a similar one I use. The only thing I don't like about yours is the fact
that the background is blue. I have a hard time with a blue background. It
was still cool though. Here is mine for those that care (probably not too
many).
prompt $e[s$e[1;1f$e[1;44;33m$e[KShell$q($z) $D $t XMS=(%@XMS[K]k)
DOS=(%@DOSMEM[K]k)$e[u$e[1;41;37m$e[s$e[25;1H$P$g$e[1;40;33m S'up?
--- GoldED 2.40
* Origin: Custer was fitted for an Arrow shirt (1:3641/1.203)
------------------------------------------------------------------------
Echo Flag : Permanent: N Export: N Personal Read: N
BBS: ESCMAIL Conference: 4dos Imported: 7/22/1992
To: DOMINIC STRANGE Num: 326 Date: 7/19/1992
From: TOM HALL Re: Time: 2:31 pm
Subj: Aliases Prvt: N Read: N
On Wednesday July 15 1992, at 22:29, Dominic Strange at 2:252/21 wrote to
Bill
Hayles:
DS> ff pushd^for %a in (C: D: E: F:) do (%a^pushd^*cd\)^for
DS> %a in (C: D: E: F:) do *dir %a*%1*.*%2*
DS> /p/b/d/f/s^popd^popd^popd^popd^popd
DS> does exactly the same as anyother file finder except
DS> that it allows me to find files that have a group of
DS> letters somewhere in them! either in the filename or
DS> extention.
It seems to work great here for file names, but not extensions. when I
do FF CTL, I get no files listed, yet another file finder reports a
number of them.
--- GoldED 2.40.P0623+
* Origin: Ten Forward (1:342/1)
------------------------------------------------------------------------
Echo Flag : Permanent: N Export: N Personal Read: N
BBS: ESCMAIL Conference: 4dos Imported: 7/23/1992
To: MICHAEL LOVELL Num: 372 Date: 7/21/1992
From: SCOTT WUNSCH Re: Time: 2:16 pm
Subj: 4DOS "dir" Prvt: N Read: N
ML> dl=*dir/2av >! c:\dirlist ^ *list c:\dirlist
What about:
DL=*DIR/2AV |*LIST/S
That doesn't add any extra files in your root.
> Scott \\'unsch <
... That the mental hospital?...room 38 empty? Great! I'm still free!
--- Maximus/2 2.01wb
* Origin: The Green Zone - Regina, Sask, Canada (1:140/23)
------------------------------------------------------------------------
Echo Flag : Permanent: N Export: N Personal Read: N
BBS: ESCMAIL Conference: 4dos Imported: 7/23/1992
To: MARCELLO SEGAL Num: 332 Date: 7/17/1992
From: O. VANBIERVLIET Re: Time: 1:39 pm
Subj: Aliases Prvt: N Read: N
On (06 Jul 92) Marcello Segal wrote to Olivier Vanbiervliet...
MS> In a message to Joeri Golsteyn <26 Jun 92 11:09> Olivier Vanbiervliet
MS> enscribed:
MS> OV> chrono=`timer ^ %& ^ timer`
MS> OV> {very usefull for programmers: if you want to know if
MS>
MS> Not so usefull for programmers, as the minimum the 4dos can
MS> handle
MS> is 0.06 seconds.
Sorry, I think that depends on your system,
I have tested my dirchanger-utility and results of 0.05 or less
are not unusual...
MS> And, furthermore, the alias it's not right, as it should be
MS> chrono=timer^ %&^ timer^
MS> Now it will work.
I'm not so shure of that, I mean, my alias works fine here.....
However, friendly greetings,
oVan, Bruges, Belgium
--- PPoint 1.33
* Origin: Breydel point 3, alias (2:291/903.3)
------------------------------------------------------------------------
Echo Flag : Permanent: N Export: N Personal Read: N
BBS: ESCMAIL Conference: 4dos Imported: 7/25/1992
To: ED KOWALSKI Num: 416 Date: 7/22/1992
From: RON WESTLAKE Re: Time: 9:42 pm
Subj: .=..\ Prvt: N Read: N
>> WK> Why not save one keystroke and say:
>> WK> .=..\
> This alias wouldn't last long on my system. :-) Since . normally equals
> the current directory commands like 'dir .', 'copy . a:' or 'del .'
> wouldn't produce the desired results.
Here is an alias that I use quite often:
..*..... IFF !%1 == ! THEN^CD %0^ELSE^CD %0\%1^ENDIFF
Ron
---
* Origin: GENESIS * Portland, OR USA * (503)257-2462 *
(1:105/18@fidonet.org)
------------------------------------------------------------------------
Echo Flag : Permanent: N Export: N Personal Read: N
BBS: ESCMAIL Conference: 4dos Imported: 7/25/1992
To: ALL Num: 394 Date: 7/20/1992
From: TONY NUGENT Re: Time: 9:12 pm
Subj: 4DOS in RamDrive 1of3 Prvt: N Read: N
This is a summary of several messages describing how to set
things up in order to boot the primary (and subsequent) 4DOS
shells from a RamDrive, lock, stock and barrell. It is
recommended reading to all those that use a RamDrive.
This message is in three parts, with a total of a little under
400 lines (without the origin lines).
Preliminary
___--------
Special note to Rex Conn: The tips described here are extremely
unusual and highly useful, and (IMHO) it would be a very good
idea if this information was distributed with the official 4DOS
documentation (along with a collection of any other useful tips,
aliases and batch files that I'm sure many people have been
collecting). I'm one of the ones here lucky (and sensible) enough
to have access to the 4DOS echo, otherwise I would not have been
able to learn how to do all that follows.
And thanks once again Rex and Co. for a great program. (When
*will* 4DOS become a full-fleged operating system?)
Thanks to the following that I am aware of who have pointed me in
the right direction: Darryl Gregorash, Jc Cranfill and Scott
Wunsch. Special thanks also to any other unknown others
brilliantly crazy enough to try the stunts pulled here to find
that they actually worked! I take no credit for any of this
apart from the effort of putting this document together for
prosperity.
You are all encouraged to export (or screen capture) and
appropriately edit this message (please leave in the above
credits), archive the file as 4RAM_TIP.xxx (zip, lzh, arj,
whatever), and upload it to you local BBS's for others not
priviliged to have access to this echo to benefit from the
madness that follows.
Now down to business:
Background
___-------
The problem with booting and running a primary 4DOS shell (and
any other command processor) from a RamDrive lies in the fact
that:
- the RamDrive must be created through software drivers, usually
via the CONFIG.SYS file; and
- 4DOS.com (and support files) must be in the RamDrive by the
time it is needed at the end of the CONFIG.SYS boot up
procedure.
In effect, the RamDrive must be set up with 4DOS in it, ready to
go, by commands in the CONFIG.SYS file. This is not easy to do,
but it can be done using some interesting tricks.
Needed
___---
1. Emergency boot floppy for the a: drive (in case things don't
go quite as expected).
2. 4DOS - of course!
3. ARJ.exe archiver (version 2.30 is described here, but earlier
versions may also work with the correct syntax).
4. Appropriate hardware: a 286, 386 or 486 with plenty of
EMS/XMS RAM.
5. Software to support a fairly large RamDrive of at least 1Mb
(although this will work with much less that this).
MS-RAMDRIVE.SYS, Super PC Kwik's PCKRAMD.SYS & SUPERPCK.com
or similar will work with good results.
6. Optional but highly recommended: DOS5 with QEMM (throw away
HIMEM.SYS & EMM386.exe, but it *will* work with them), or
DR-DOS6; a good disk cache like PCKWIK or HyperDisk. 286's
will do well with QRAM or similar to gain the benefits of
loading high into the UMB's.
Strategy and Summary of Events
___---------------------------
Load the memory manager(s). Load the RamDrive device driver(s).
Place the 4DOS (and any other) files into the RamDrive using the
INSTALL command and a self-extracting ARJ archive file. With the
SHELL directive pointing to 4DOS in the RamDrive, complete the
CONFIG.SYS instructions and then allow 4DOS to read 4DOS.INI,
4START.BTM and (optionally) AUTOEXEC.BAT from the RamDrive. The
primary and subsequent 4DOS shells are now all run from the
RamDrive at lightening speed!
Warning
___----
The following procedure requires modification of most of the 4DOS
configuration files: CONFIG.SYS, 4DOS.INI, 4START.BTM,
AUTOEXEC.BAT, 4EXIT.BTM and your Alias configuration file and
Command Line History file.
Make sure that you have saved all these files, and have handy a
bootable floppy disk in case things do not go as planned!
Preliminary Notes
___--------------
In what follows, I have presumed that the 4DOS directory on the
C: boot drive is C:\DOS\4DOS. I have called my alias file
4ALIAS.CNF and my history file 4HISTory.CNF. Substitute these
names for your own.
I place the 4DOS files in my RamDrive in a directory called
D:\4DOS. Tailor this to your own tastes, but it is best to keep
them out of the root directory of the RamDrive.
I have set this up and tested this on a 386DX33 with 5Mb RAM,
with DOS 5, QEMM 6.01 (and DESQview 2.41). It works well with
plain DOS, 4DOS, ms-RAMDRIVE.SYS, Super PC Kwik Cache/RamDrive,
HyperDisk, HIMEM.SYS/EMM386.exe (yuk), ms-SmartDrv.SYS (yuk) and
the new ms-SmartDrv.exe (released with Windows 3.1).
To set up my multiple CONFIG.SYS and AUTOEXEC.BAT files, I use
RECON ver 6.0 (a most excellent utility).
It should work well with DR-DOS6 with appropriate modifications.
I do not have DR-DOS6 :-(
There is no reason why it should not also work with Windows, but
I don't use it as it is a pain (-: pane :-) and I like
performance *enhancement*, not a straightjacket! (NO apologies for
expressing these sentiments :-)
The Setup Procedure
___----------------
...... continued in the second part that follows.....
______
|ony
... OFFLINE 1.40 * The organization of any bureaucracy is very much like a
septic tank - the really big chunks always rise to the top.
>> Message length exceeded, split by WILDMAIL! v2.04 <<
>> Continued in next message <<
------------------------------------------------------------------------
Echo Flag : Permanent: N Export: N Personal Read: N
BBS: ESCMAIL Conference: 4dos Imported: 7/25/1992
To: ALL Num: 395 Date: 7/20/1992
From: TONY NUGENT Re: Time: 9:12 pm
Subj: 4DOS in RamDrive 1of3 Prvt: N Read: N
>> Message length exceeded, split by WILDMAIL! v2.04 <<
>> Continued from previous message <<
--- Maximus 2.01wb
* Origin: Brisbug PC User Group BBS (3:640/821)
------------------------------------------------------------------------
Echo Flag : Permanent: N Export: N Personal Read: N
BBS: ESCMAIL Conference: 4dos Imported: 7/25/1992
To: ALL Num: 396 Date: 7/20/1992
From: TONY NUGENT Re: Time: 9:13 pm
Subj: 4DOS in RamDrive 2of3 Prvt: N Read: N
This is the second part of a three part message describing the
tricks necessary to set up the 4DOS primary shell in a RamDrive.
The Setup Procedure
___----------------
1. Make sure that your RamDrive is large enough to contain all
the 4DOS files. Note that 4DOS.com and 4HELP.exe can be
compressed using PKLITE, DIET or LZEXE to save disk space
(check the 4DOS manual).
2. Copy all the relevant 4DOS files (and any other commonly
accessed files) to the RamDrive directory D:\4DOS ie:
4DOS.COM 4DOS.INI 4START.BTM 4ALIAS.CNF
4EXIT.BTM 4HELP.EXE 4DOS.HLP
I also copied L.COM (ala LIST.com), Q.EXE (QEDIT), and H.COM
(ala HDIR.COM - Xanadu's HotDIR) there as well, as I use them so
much. Put anything else you want frequent and instant access
to there as well.
3. Create the following aliases. The actual names are entirely
optional, and the path names may need modification:
alias sa*veali `alias >! d:\4dos\4alias.cnf`
alias sh*istor `history >! d:\4dos\4history.cnf`
alias mk4*auto `del c:\dos\4dos\4auto.exe ^
ARJ a -jf -je1 c:\dos\4dos\4auto D:\4DOS\*.* `
alias 4upd*ate `ARJ f -jf -je1 c:\dos\4dos\4auto.exe D:\4DOS\*.* `
alias cnf `q.exe c:\config.sys c:\autoexec.bat
d:\4dos\4dos.ini d:\4dos\4start.btm
d:\4dos\4exit.btm d:\4dos\4alias.cnf
d:\4dos\4history.cnf `
Of course, envoke these alias creation commands each on the
one line (they are broken here for formatting).
< Aside Mode On >
While you're at it, create the following one to prevent
accidently overwriting files with the copy command:
alias copy `*copy %& /R /V`
The same thing should be done with the move command.
Also create an alias to flush your disk cache and perform any
other tasks before rebooting or power-down; eg:
alias off `c: ^SA ^SH ^4UPD ^chkdsk ^c:\dos\pckwik\superpck.com /f `
alias off `c: ^SA ^SH ^4UPD ^chkdsk ^hyperdisk.exe D`
< Aside Mode Off :->
The SA and SH alias simiply save the current aliases and
history list into files. The SH alias could be modified to
sort and eliminate duplicate entries before saving.
CNF allows easy editing of the configuration files for
fine-tuning (QEDIT can load multiple files at once). Change
the reference to C:\AUTOEXEC.BAT to D:\4DOS\AUTOEXEC.BAT (and
modify 4DOS.INI - see later) if you want to run AUTOEXEC.BAT
from the RamDrive as well.
The MK4 and 4UPD aliases create and update an ARJ
self-extractor from the files in the D:\4DOS RamDrive
directory. An alternate approach would be to have TWO
archives created, one with the larger "static" files
4DOS.com, 4HELP.exe, 4DOS.hlp, and any other desired files,
and have another with the configuration files in it. This
way any updates to these files you make can be easily and
quickly saved in a separate archive file. It would not be
difficult to do this so I'll leave it to you to redesign
these aliases to cope with this wothwhile idea. (I've done
it myself now).
The above ARJ command line swithes are the bare bones minimum
needed. If you want to be more adventuresome, then try these:
alias mk4*auto `del c:\dos\4dos\4auto.exe ^
ARJ a -jf -je1 -i1 -wD:\ -m0 c:\dos\4dos\4auto
D:\4DOS\*.* -zc:\dos\4dos\header.txt `
alias 4upd*ate `ARJ f -jf -je1 -i1 -wD:\ -m0 c:\dos\4dos\4auto.exe
D:\4DOS\*.* -zc:\dos\4dos\header.txt `
These ARJ command line switches deserve some explaination.
The a, f, -jf & -je1 switches are ESSENTIAL; the rest are
optional.
a Add files to archive
f Freshen files in archive (update newer or
non-archived files).
-jf stores the full drive:\path\filenames
-je1 creates a self-extracting archive that will force
extraction to the source drive:\path\
-i1 uses a graphical representation to show compression
progress. Omit if desired, or use -i for no
progress indication.
-wD:\ use D:\ (RamDrive) as work directory. Use for speed,
but only if there is sufficient space there!
-m0 Compression method, NO compression (store files).
This speeds things up considerably, especially at
bootup. However the resulting .exe file is rather
large. Omit this option if you want to save hard
drive space and don't mind a short wait at bootup.
-y Assume YES to all queries. (I doubt if you need this).
-zfilename This is the filename of a header message that you
need to create; it will be displayed when the files
are extracted. The file must be less than 2048 bytes
long. Highly optional, but can make the whole
process look real good :-)
Check out the ARJ documentation file for further details.
4. Save all your old configuration files in a safe place, or use
RECON or another similar program that allows multiple
configuration files to be saved and easily modified and
reused. RECON is an excellent utility; it is 4DOS and
DESQview aware, and will also handle multiple 4DOS.INI and
all the other configuration files (although getting it to
work with the setup described here requires some deliberate
direct manipulation of the RECON configuration file and
manual creating of the archive, but it can be done with not
too much fuss).
5. Modify CONFIG.SYS
The following are samples for DOS5 and QEMM. If you use
DR-DOS6 then use its appropriate directives and commands.
a. DOS directives
DOS=HIGH (dos5 only on a 286/386)
FCBS=1
STACKS=0,0
BUFFERS=4 (depends on your cache, otherwise 20-40)
FILES=8 (use QEMM FILES.com, otherwise 20-40)
b. Memory manager(s)
DEVICE=c:\dos\qemm\QEMM386.sys <options>
>> Message length exceeded, split by WILDMAIL! v2.04 <<
>> Continued in next message <<
------------------------------------------------------------------------
Echo Flag : Permanent: N Export: N Personal Read: N
BBS: ESCMAIL Conference: 4dos Imported: 7/25/1992
To: ALL Num: 397 Date: 7/20/1992
From: TONY NUGENT Re: Time: 9:13 pm
Subj: 4DOS in RamDrive 2of3 Prvt: N Read: N
>> Message length exceeded, split by WILDMAIL! v2.04 <<
>> Continued from previous message <<
or
DEVICE=c:\dos\himem.sys <options>
DEVICE=c:\dos\emm386 <options>
or
DEVICE=c:\dos\qram\QRAM.exe <options> (for a 286)
c. RamDrive device driver(s)
DEVICEHIGH=c:\dos\RAMDRIVE.SYS <options>
or
DEVICE=c:\dos\qemm\loadhi.sys c:\dos\RAMDRIVE.SYS <options>
If you use PCKWIK, then use the following to load the
RamDrive device driver AND the cache here (SUPERPCK.com is
usually loaded via the AUTOEXEC.BAT, but the INSTALL
command does the trick nicely here).
DEVICE=c:\dos\qemm\loadhi.sys c:\dos\pckwik\PCKRAMD.sys <options>
INSTALL=c:\dos\qemm\loadhi.com c:\dos\pckwik\SUPERPCK.com <options>
NOTE that the error message issued by DOS with the install
command can be safely ignored (see below).
With DR-DOS6, use HiINSTALL=c:\dos\pckwik\SUPERPCK.com <options>
If you are not using QEMM or DR-DOS6, then use the
following, which will leave SUPERPCK installed in DOS base
memory:
DEVICEHIGH=c:\dos\pckwik\PCKRAMD.sys <options>
INSTALL=c:\dos\pckwik\SUPERPCK.com <options>
d. The Magic Line(s)
INSTALL=c:\dos\4dos\4auto.exe
This is the line that does the trick. It automatically and
unquestionably extracts the archived files back into the
RamDrive, creating the D:\4DOS directory in the process. If
you have created two self-extractors (another with just the
configuration files), then INSTALL this one as well in
exactly the same way.
DOS will issue an error message, as it doesn't know what is
going on, as it expects a device driver to remain present in
memory. Poor dumb DOS. Ignore the error message :-)
e. The SHELL directive
SHELL=d:\4dos\4DOS.COM d:\4dos @d:\4dos\4DOS.INI /P
This defines 4DOS.COM as the primary command processor, now
looking very pretty sitting right there in the RamDrive with
all it's configuration files there as well.
f. Load in any other device drivers as usual after this, eg,
mouse.sys, hyperdisk.exe, ansi.sys (I use nnansi.com), etc
6. Modify 4DOS.INI
... to be continued in the exciting third and final part of this trilogy...
______
|ony
... OFFLINE 1.40 * If an experiment works, something has gone wrong.
--- Maximus 2.01wb
* Origin: Brisbug PC User Group BBS (3:640/821)
------------------------------------------------------------------------
Echo Flag : Permanent: N Export: N Personal Read: N
BBS: ESCMAIL Conference: 4dos Imported: 7/25/1992
To: ALL Num: 398 Date: 7/20/1992
From: TONY NUGENT Re: Time: 9:14 pm
Subj: 4DOS in RamDrive 3of3 Prvt: N Read: N
This is the third and final part of a three part message
describing the nefty tricks necessary to set up the 4DOS primary
shell in a RamDrive.
6. Modify 4DOS.INI
The following is a guide. Note that if you want to run
AUTOEXEC.BAT from the RamDrive, then set AutoExecPath as
below, otherwise set it to C:\ or leave it out.
; ALL SHELLS
;
4StartPath = d:\4dos ; A MUST HAVE !!!
HelpPath = d:\4dos ; A MUST HAVE !!!
AutoExecPath = d:\4dos ; only with d:\4dos\AUTOEXEC.bat
...
Swapping = XMS, EMS, D:\4DOS, C:\ ; your choice!
NextINIFile = d:\4dos\4dos.ini ; A MUST HAVE !!!
...
; PRIMARY SHELL ONLY
[Primary]
UMBEnvironment = Yes
UMBLoad = Yes
...
; SECONDARY SHELL ONLY
[Secondary]
UMBEnvironment = No ; If using DV set to NO as UMB are
UMBLoad = No ; unavailable, otherwise set to YES
...
7. Modify AUTOEXEC.BAT
Not *too* much to change here, except loading the history and
alias configuration files. Some suggestions:
:: Speed up keyboard
@c:\dos\mode con: rate=32 delay=1
:: There is a small program called ATKYFAST.com that does
:: the same thing
:: I find this useful in DV; you could also include the
:: shell number with %_SHELL somewhere in here
@PROMPT=%%@DOSMEM[K]K Free $e[32;40m$P$G$e[36;40m$e[36;40m
:: Put the RamDrive first in the path command (it's quick)
@PATH d:\4DOS;C:\;c:\DOS;c:\dos\TOOLS; ...c:\WP51; ...c:\dos\QEMM
c:\dos\qemm\loadhi c:\dos\4dos\KSTACK.com
c:\dos\qemm\loadhi c:\dos\qemm\files.com +32
:: For LIST.COM - a most excellent utility
set list=d:\
:: For WordPerfect
md d:\temp
set wp=/r/d-d:\temp/m-startup
:: The following is a safeguard, but if the RamDrive was not
:: set up correctly there is no way that you could get
:: this far anyway!
set comspec=c:\dos\4dos\4DOS.com
@if exist d:\4dos\4DOS.com SET COMSPEC=d:\4dos\4DOS.com
@if exist d:\4dos\4DOS.com goto AllOk
@ECHO Warning - RAM Drive D apparently not setup correctly!
pause
:AllOk
::
:: Load in the 4DOS Alias definitions and command History
@alias /r d:\4dos\4alias.cnf
@history /r d:\4dos\4history.cnf
:: Set the temp directory for piped files (and Windows)
@set temp=d:\temp
@set cdpath=..... (whatever)
....
Note that all these SET commands could be enacted by loading
the environment with ANOTHER configuration file in the
RamDrive with the following command (check the 4DOS manual):
SET /R d:\4dos\4SET.cnf
You simply set up another alias called, say, SS, to create or
modify this file:
alias SS `SET >! d:\4dos\4SET.cnf`
8. Modify 4START.BTM and 4EXIT.BTM, if necessary.
9. Use SA and SH (and SS), then use MK4 to create the
self-extracting archive 4AUTO.exe.
10. Flush your cache, take a big breath and then reboot (with
emergency boot disk handy). If all goes well, then you will
see everything load, the files extract to the RamDrive, the
error messages, and very quickly zap zap you'll be back in a
new, fast, highly-tuned, RamDrive-based 4DOS!
Once you are feeling confident about this new setup, play
around with the -m0 ARJ option to see if you would prefer to
archive the files rather than store them (-m1 or -m2 or even
-jm1 will save heaps of hard drive space, but it will take a
little longer to bootup your system). Once you are
fine-tuned and really feeling comfortable, go ahead and
delete all the unarchived 4DOS files from your hard drive!
(Go on right ahead, be a devil; it's painless, and you get
back some precious hard drive real estate as a bonus!)
Happy 4DOSing !! :-)
The tricks described here can also be used to do all sorts of
things... the imagination can go wild......
Tony Nugent
Monday 20th July 1992
Brisbane Australia
via BrisbUG BBS 3:640/820, 3:640/821, 3:640/822
... OFFLINE 1.40 * When things are going well, something will inevitably go
wrong.
--- Maximus 2.01wb
* Origin: Brisbug PC User Group BBS (3:640/821)
------------------------------------------------------------------------
Echo Flag : Permanent: N Export: N Personal Read: N
BBS: ESCMAIL Conference: 4dos Imported: 7/25/1992
To: SCOTT BIEDERMANN Num: 411 Date: 7/23/1992
From: MICHEL LABELLE Re: Time: 1:29 pm
Subj: Dup Hist Prvt: N Read: N
Le <21 Jul 92 08:37:06>, tu as ecrit a Michel Labelle a propos de Re: .=..\
SB> I missed that .BTM, so if you could post it or yours I'd sure
SB> appreciate it!!
Here's his version, because mine has too many complications.
~~~ vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
@echo off
goto start
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
COMPHIST.BTM Michael Jerkovic
Jan 1992
Melbourne, AUSTRALIA
Comphist is a 4DOS btm that removes duplicate entries in the 4DOS
internal history list. It uses only the dos sort utility and 4dos
commands.
Comphist is not not the most efficient method of compressing your
history, however it does provide stats and a progress indicator
to make the process interesting.
Comphist will work with 25, 40 or 50 line displays.
Configuration:
1. The process requires the creation of a temporary output file.
See "set tmp=%@unique[e:]". The "e:" refers to my ram drive.
If you have a ram drive replace "e:" with the appropriate drive.
If you dont have a ram drive, use a hard drive.
2. The process assumes you have the dos utility sort in your path.
See "history | sort > %tmp". If sort is not in your path, or if
you would prefer to use a more powerful sort utility, you will
need to modify this line.
___-!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!-
:start
setlocal
set tmp=%@unique[e:]
history | sort > %tmp
if %@lines[%tmp]==0 (beep ^ echo Error: History only contains the
+++ last command.^quit)
history /f
set pos=%_row
if %pos gt %@eval[%_rows-7] (cls ^ set pos=0)
text
+-!!!!!!!!!!!- Compressing History -!!!!!!!!!!-+
| |
| Processed commands, leaving active. |
| |
| XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX |
+-!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!-+
endtext
alias showcnt scrput %@eval[%pos+2] %%1 bri yel on bla %%2
alias inc `set %1=%@eval[%[%1]+1]`
set z=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
alias get_bar `set bar=%@eval[%1*%@eval[40/(%@lines[%tmp]+1)]]^
+++iff `0%@substr[%bar,%@len[%@int[%bar]]]` gt `.5` then ^
+++ set bar=%@substr[%z,0,%@eval[%@int[%bar]+1]]^else^
+++ set bar=%@substr[%z,0,%@int[%bar]]^endiff`
alias display_bar if %%@ascii[%%bar] ne 0 scrput %@eval[%pos+4] 19
+++ bri %_fg on %_bg %%bar
set i=0
set j=0
:top
set x=%@line[%tmp,%i]
if "%x" == "**EOF**" (del %tmp /q^endlocal^quit)
if "%x" != "%oldx" (history /a %x^inc j)
inc i
showcnt 28 %i
showcnt 50 %j
get_bar %i ^ display_bar
set oldx=%x
goto top
~~~ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
It's the best, not only done completely with 4DOS(DOS's SORT) but
also
takes lines with redirection like TYPE TAGLINES.BW | SORT > TAGLINES.BW
Bye.
... For the millionth time, don't exaggerate!
--- Blue Wave/Max v2.10 [NR]
* Origin: Golden Odyssey * Ottawa, Ont. (613)723-8526 v.32bis (1:163/305.0)
------------------------------------------------------------------------
Echo Flag : Permanent: N Export: N Personal Read: N
BBS: ESCMAIL Conference: 4dos Imported: 7/25/1992
To: TONY NUGENT Num: 377 Date: 7/18/1992
From: HUGO LANDSMAN Re: Time: 11:17 pm
Subj: Problem fine-tuning 4DOS Prvt: N Read: N
Hi Tony,
13 Jul 1992 22:33, Tony Nugent (3:640/821) wrote to Tony Dunlap:
TN> Now, I have found that I can load PCKWIK's RamDrive with a
TN> loadhi.sys (I use QEMM with DOS5), but the RamDrive itself is
TN> only activated when SUPERPCK.com is run. This is normally meant
TN> to be done from AUTOEXEC.bat, but I now find that I can install
TN> it from the CONFIG.sys file with the line:
TN> INSTALL=c:\dos\pckwik\SUPERPCK.com /A+ /B+ /W+ /O- /Q+ /R:1280 /T+ /P-
TN> The problem with this is that this leaves the program using 16K
TN> of my precious 640K. Is there any way to do an install and
TN> leaving the program in high memory area ? With QEMM running in
Maybe you need an update? SuperPCK.Exe 4.0 loads itself high. I didn't
think of trying to Install it from Config.Sys before, but that works too.
Thanks! That saved me not only a couple of bytes: it now loads completely
into the first UMB at B000, leaving mutch more free usable memory free in the
second (a thing I can't control with that dumb EMM386). One thing though:
believe your DOS manual when it states not to Install programs that have
hotkeys: PCKScrn frooze solid.
// hugo
--- FastEcho 1.20+
* Origin: st. anna pbbs, nijmegen nl (2:512/154.5@fidonet.org)
------------------------------------------------------------------------
Echo Flag : Y Permanent: N Export: N Personal Read: N
BBS: ASTRIX Conference: 4DOS Imported: 7/25/1992
To: KETIL KRUMM Num: 13966 Date: 7/22/1992
From: TOM RAWSON Re: 0 Time: 8:41 am
Subj: GOSUB PARAMETERS Prvt: N Read: N
KK> I have found one solution that will work, but I haven't used
KK> it, since it has a taste of workaround: Create a dummy
KK> variable called MsgText, then every time I want a message I set
KK> this variable to contain the message text. To display/echo
KK> thje message, GOSUB the Message subroutine which the acts upon
KK> the %MsgText variable:
KK>
KK> set MsgText=This is the message ^ gosub Message
KK> .
KK> .
KK> :Message
KK> echo %MsgText
KK> echo %MsgText >>result.txt
KK> return
I think you have the right answer for now. There are no parameters so
you have to use global variables. However you can set up an alias:
alias msg `set MsgText=%&^gosub Message^unset MsgText`
or even:
alias msg `set MsgText=%&^echo %MsgText^echo %MsgText>>result.txt^
unset MsgText`
or some such. Aliases are VERY useful tools for batch programming ...
... Tom
PCRelay:CHANNEL -> #15 RelayNet (tm)
------------------------------------------------------------------------
Echo Flag : Permanent: N Export: N Personal Read: N
BBS: ESCMAIL Conference: 4dos Imported: 7/29/1992
To: HERMOD PEDERSEN Num: 438 Date: 7/23/1992
From: TORBEN SCHLYNTZ Re: Time: 7:34 pm
Subj: 4DOS AND LANTASTIC Prvt: N Read: N
> DB> HP>> c:\lan\NET LOGIN/WAIT \\SERVER ?"NAMN: " ^"L#SENORD: "
> DB>
> That ought to do it - but it doesn't. The Lantastic
> BAT-file still
> refuses to acknowledge the format - now it doesn't
> like the '
> characters.
Try this. It's works very neat here at my place using standard 4dos and
standard Lantastic:
---------------cut--------------
@Echo Off
goto start
┌─────────────────────────────────────────────────────────────────────────┐
│ │
│ Lantastic login script by Torben Schlüntz, (C) 1992 │
│ │
└─────────────────────────────────────────────────────────────────────────┘
set Net_error=000
set date=dd-mm-yyyyy
set time=00:00:00
set MachineId=VeryLongMachineName
set Userid=UserIdUserId
set Password=PasswordPassWord
set ServerName=VeryLongServerName
if "%ServerName%"=="VeryLongServerName" goto EnvOk
Echo Out of environment....
Goto CleanUp
:EnvOk
net string MachineId !"MachineId"
echo Enter a servername :
Net string/right=10 Servername ?""
if "%ServerName%"=="" goto CleanUp
echo Enter your login name or nothing for %MachineId%:
Net string UserId ?""
if "%UserId%"==" " Set UserId=%MachineId%
echo Enter your Password :
Net String Password `^""`
Net Login \\%ServerName% %UserId% %Password%
set Password=
:CleanUp
set date=
set time=
set MachineId=
set Userid=
set Password=
set ServerName=
:Fin
--------------cut-------------------
GYN
T.Schlüntz
--- Email 1.00
* Origin: if %1x==x %0 New%1 (2:234/61.12)
------------------------------------------------------------------------
Echo Flag : Permanent: N Export: N Personal Read: N
BBS: ESCMAIL Conference: 4dos Imported: 7/29/1992
To: SCOTT BIEDERMANN Num: 431 Date: 7/25/1992
From: JOSEPH MORIN Re: Time: 6:12 am
Subj: Comphist.Btm Prvt: N Read: N
While Scott Biedermann Talks to Silver Dragon... [Tuesday July 21 1992]
SD>> What does CompHist.BTM do? Does it compress the History
SD>> File? If so, I have a utility I rewrote to do it. It reads
SD>> the history, removes Dupes, Sorts and Caps all entries.
SB≡> If that's a .BTM could you post it here or provide a place to FREQ it
SB≡> from? I'd sure appreciate it!!
4Dos isn't that powerful that easy, I have the utility here. The
source I wrote it in was in Basic, and the Batch File is 5 or 6 lines. I had
a 4Dos Utilities archive and I found there History Compressor broken, and
they wanted to charge $30US for it! Heck, I'll just show you both, Compile
the source and run it.
====== CH.BTM
@Echo Off
history > C:\__HIST.TMP
compact C:\__HIST.TMP
history /f
history /r C:\__HIST.TMP
del /q C:\__HIST.TMP
====== <End of BTM>
====== Compact.Bas
DIM TXT$(500)
$INCLUDE "STRIP.INC"
OPEN COMMAND$ FOR INPUT AS #1
LET PNT% = 0
WHILE NOT EOF(1)
LET TMP$ = ""
LET PNT% = PNT% + 1
LINE INPUT #1, TMP$
LET TXT$(PNT%) = UCASE$(FNStrip$(TMP$))
WEND
CLOSE #1
FOR X% = 1 TO PNT%
FOR Y% = 1 TO PNT%
IF TXT$(X%) = TXT$(Y%) AND X% <> Y% THEN
LET TXT$(Y%) = ""
END IF
IF TXT$(X%) < TXT$(Y%) THEN
SWAP TXT$(Y%), TXT$(X%)
END IF
NEXT Y%
NEXT X%
KILL COMMAND$
OPEN COMMAND$ FOR OUTPUT AS #1
FOR X% = 1 TO PNT%
IF TXT$(X%) <> "" THEN
PRINT #1, TXT$(X%)
END IF
NEXT X%
CLOSE #1
END
======= <End of BAS>
There you go, Knock your socks off. Change it, Compile it, do what you
want. I declare it PD!
Written By:
Joseph Morin
--- GoldED 2.40.P0623
* Origin: System Failure: (A)bort (R)etry (F)ire Shotgun (FIDO 1:163/406.2)
------------------------------------------------------------------------
Echo Flag : Permanent: N Export: N Personal Read: N
BBS: ESCMAIL Conference: 4dos Imported: 7/29/1992
To: DOMINIC STRANGE Num: 439 Date: 7/18/1992
From: WOUT MERTENS Re: Time: 11:33 am
Subj: Prompt Prvt: N Read: N
Hi Dominic, this is'nt actually to you but I don't have the original message,
so I'll have to do with this. No hard feelings? ;)
> DS>prompt=(%@dosmem[K]K, %@eval[%@substr[%_time,0,2] %%
> DS>12]%@substr[%_time,2,3]) $p$g
That way you get an awful lot on one line. That's not real nice to see. Have
you ever thought about something like this:
PROMPT=$e[s$e[1;64f$e[1;37;44m$e[K│ $t │ $z │$e[0m$e[u$P$g
or
PROMPT=`$e[s$e[1;28f$e[1;37;44m$e[K│ %@dosmem[K]KB │ %@diskfree[%_disk,K]KB
free │ $d │ $t │ $z │$e[0m$e[u$P$g`
Bye,
| /__|_
|/|/o u|_ .
--- DB B1064/001874
* Origin: The Point of No Return (2:292/850.28)
------------------------------------------------------------------------
Echo Flag : Permanent: N Export: N Personal Read: N
BBS: ESCMAIL Conference: 4dos Imported: 7/29/1992
To: DOUG OSBORN Num: 488 Date: 7/26/1992
From: ERA ERIKSSON Re: Time: 9:27 pm
Subj: Useful timer Prvt: N Read: N
* Quoting Doug Osborn (3:640/586) to All on 23 Jul 1992:
> The timer in 4DOS is really nice but you can't query the result (ie
> the minutes you have just spent on that program). I have written a
What's wrong with TIMER /S? Or do I misunderstand you?
> I know i can write this total to file with an "echo %time > time" but
> how do i do the reverse?
input %%mytime < time
/* era */
--- 4dos 4.01/B && GoldEd
* Origin: $HOME is where the core is o . (Ball pt, Helsinki)
(2:220/851.95)
------------------------------------------------------------------------
Echo Flag : Y Permanent: N Export: N Personal Read: N
BBS: ASTRIX Conference: 4DOS Imported: 7/30/1992
To: LARRY ALPERT Num: 14081 Date: 7/27/1992
From: MICHAEL HAHN Re: 0 Time: 6:53 am
Subj: AUTOEXEC.BAT Prvt: N Read: N
LA▓ I use a boot up program that gives me a load of different configs
LA▓ out of 1 file.
LA▓ Any changes made to my config files by other programs can be overided
LA▓ by overwriting the files. If I want to keep the changes, I just edit
LA▓ them into my boot.cfg file,
Same here, but I use my own .BTM. For those interested:
BOOT.BTM
rem This changes configuration files and reboots.
cdd c:\
if "%1"=="" goto end
if not exist %1.bat goto nofile
if not exist %1.sys goto nofile
if "%boot"=="MS-DOS" .AND. "%@substr[%1,0,2]"=="dr" goto os_change
if "%boot"=="DR-DOS" .AND. "%@substr[%1,0,2]"=="ms" goto os_change
copy /Q %1.bat autoexec.bat
copy /Q %1.sys config.sys
goto end
:os_change
cls
scrput 6 13 bright white on blue Currently running %boot--change OS's before re.
quit
:nofile
echo The "%1" configuration does not exist!!
quit
:end
if "%cache"=="HYPERDISK" hyperdk d
:boot
reboot
Note: I use Keith Ledbetter's dual boot utility for MS-DOS 5 and
DR-DOS 6; that's the reason for the os_change section.
.\\ichael
---
■ KingQWK 1.05 # 155 ■ Windows: Veni, vidi, shelfi. |
PCRelay:NOFRILLS -> #1299 RelayNet (tm)
PCRelay:DCINFO -> #16 MetroLink International Network
4.10 DC Info Exchange MetroLink International Hub
------------------------------------------------------------------------
Echo Flag : Y Permanent: N Export: N Personal Read: N
BBS: ASTRIX Conference: 4DOS Imported: 7/30/1992
To: JOHAN SELAND Num: 14067 Date: 7/27/1992
From: DAVID KUNZ Re: 0 Time: 6:23 pm
Subj: COMPRESS MANY FILES Prvt: N Read: N
JS║ Hello everybody. I am trying to compress all my DOC files, using
JS║ the .DOZ=C:\UTILS\READ.BTM %1 environment variable. But the I would
JS║ like to compress all my ASCII DOC, TXT, ME etc. files in a row. To
JS║ avoid doing it on Word For Windows files i no problem, the problem
JS║ is to compress all DOC files in a single command. To an example
JS║ like this. (Not working) PKZIP *.DOZ *.DOC, any ideas?
I use the following alias (all on one line, replace <at> with the 'at'
symbol (shift-2)):
DOZIP=iff "%1"=="" then echo Usage: DOZIP ZIPNAME^else
if exist $temp$$$.tmp del $temp$$$.tmp^iff "%2"=="" then
select dir/f/b (*.*) >>$temp$$$.tmp^else
select dir/f/b (%2) >>$temp$$$.tmp^endiff^
pkzip -am %1 <at>$temp$$$.tmp^ del $temp$$$.tmp^endiff
syntax: DoZip ZipFileName [FileSpec]
It uses the select command to create a file with one entry on each
line ($temp$$$.tmp). It then invokes pkzip using the '<at>' form
which directs it to get the files to be zipped from a file. Note that
I use the 'move' option wich deletes the file from your disk after
compressing.
Hope that this helps!
David Kunz
---
■ MegaMail : Perot/Bush/Quayle: The Millionaire, the Skipper, Gilligan
PCRelay:WTHREEJP -> #75 RelayNet (tm)
------------------------------------------------------------------------
Echo Flag : Y Permanent: N Export: N Personal Read: N
BBS: ASTRIX Conference: 4DOS Imported: 7/31/1992
To: ALL Num: 14131 Date: 7/29/1992
From: BRAD OWEN Re: 0 Time: 2:42 pm
Subj: ENIVRONMENTAL 1 OF 2 Prvt: N Read: N
Apparently both parts of the original post didn't make it. Here it
is again for anyone interested.
Make sure you make the following changes:
1) Combine both parts of the file.
2) Replace all the "#" characters with the "at" character--shift 2.
There are 17 replacements.
3) Change the first character in the second line following the
:edenv label to the editor of your choice. The program currectly
calls Qedit.
For some information type "4env h"
------------------------START HERE PART 1-------------------------------
@echo off
cls
iff "%_env" LT "%#eval[%#len[%path] * 2]" then
beep 320 1 400 1 320 1 400 1 320 1 400 1 320 1 400 1 320 1 400 1
scrput 5 3 %_fg on %_bg The current environment size is %_ENV
scrput 7 3 %_fg on %_bg Increase this amount to %#eval[%#len[%path]*2]
scrput 9 3 %_fg on %_bg To insure proper operation of this program.
scrput 11 3 %_fg on %_bg See your 4DOS and DOS manuals for more
scrput 13 3 %_fg on %_bg information on increasing the environment.
goto wrapup
endiff
iff "%1" EQ "" then
screen 3 0
beep 320 1 400 1 320 1 400 1 320 1 400 1 320 1 400 1 320 1 400 1
echo No switch was specified.
echo Type 4env h for help
goto wrapup
endiff
if "%1" EQ "e" goto edenv
if "%1" EQ "a" goto addpath
if "%1" EQ "d" goto delpath
if "%1" EQ "h" goto help
if "%1" EQ "?" goto help
:edenv
set > environ.dat
Q environ.dat
set /r environ.dat
del /q environ.dat
scrput 4 1 %_fg on %_bg Free environment space is %_env bytes.
goto wrapup
:addpath
iff "%#index[%path,%_cwd;]" NE "-1" then
beep 320 1 400 1 320 1 400 1 320 1 400 1 320 1 400 1 320 1 400 1
scrput 4 2 %_fg on %_bg The current directory: %_cwd
scrput 5 2 %_fg on %_bg is already in your path.
screen 7 2
echo %path
goto wrapup
endiff
keystack end "%_cwd" ";" 13 ^ eset path > NUL
screen 3 0
echo %path
goto wrapup
:delpath
iff "%#index[%path,%_cwd;]" EQ "-1" then
beep 320 1 400 1 320 1 400 1 320 1 400 1 320 1 400 1 320 1 400 1
scrput 4 2 %_fg on %_bg The current directory: %_cwd
scrput 5 2 %_fg on %_bg is not in your path.
screen 6 2
echo %path
goto wrapup
endiff
--------------------------END HERE PART 1----------------------------
Continued...........
Brad
---
■ 1st 1.00 #345 ■
PCRelay:MIDAS -> #887 RelayNet (tm)
------------------------------------------------------------------------
Echo Flag : Y Permanent: N Export: N Personal Read: N
BBS: ASTRIX Conference: 4DOS Imported: 7/31/1992
To: ALL Num: 14132 Date: 7/29/1992
From: BRAD OWEN Re: 0 Time: 2:43 pm
Subj: ENVIRONMENTAL 2 OF 2 Prvt: N Read: N
------------------------START HERE PART 2------------------------------
scrput 3 1 %_fg on %_bg The current directory is %_cwd
rem length of current directory
set ML=%#len[%_cwd;]
rem location of current directory in the path
set MI=%#index[%path,%_cwd;]
rem length of path
set P=%#len[%path]
rem length of path minus current directory
set N=%#eval[%P - %ML]
rem path string BEFORE the current directory
set O=%#substr[%path,0,%MI]
rem length of %O
set OL=%#len[%O]
rem check to see if the length of %O is less than the length of %N
iff %OL NE %N then
rem length of %O plus %ML
set PP=%#eval[%OL + %ML]
rem length of path after the current directory
set PQ=%#eval[%P - %PP]
rem %PR = the path AFTER the current directory
set PR=%#substr[%path,%PP,%PQ]
rem get rid of the ; at the end of %O
set OP=%#eval[%OL - 1]
set O=%#substr[%O,0,%OP]
rem set the new path
set path=%O;%PR
screen 5 1
echo The new path is: %path
goto wrapup
endiff
set path=%O
screen 5 1
echo The new path is: %path
goto wrapup
:help
cls
screen 3 1
text
4ENV helps you manage your environment.
Usage: 4ENV [e] [a] [d] [h] [?]
e Loads a copy of the environment into your editor.
Upon exiting reloads the copy and displays the
free environment space.
a Adds the current directory to your path.
* KSTACK must be loaded for this option.
d Deletes the current directory from your path.
h or ? Display this help screen.
Notes: You must specify a switch.
Only the first switch will be executed.
Multiple switches are ignored.
All changes affect only the current session and will be
lost when you re-boot.
endtext
goto wrapup
:wrapup
set ML=
set MI=
set N=
set O=
set OL=
set OP=
set P=
set PP=
set PQ=
set PR=
set PS=
-------------------------END HERE PART 2-------------------------------
Brad
---
■ 1st 1.00 #345 ■
PCRelay:MIDAS -> #887 RelayNet (tm)
------------------------------------------------------------------------
Echo Flag : Permanent: N Export: N Personal Read: N
BBS: ESCMAIL Conference: 4dos Imported: 8/01/1992
To: MICHEL LABELLE Num: 545 Date: 7/27/1992
From: RON WESTLAKE Re: Time: 5:52 pm
Subj: .=..\ Prvt: N Read: N
> RW> Here is an alias that I use quite often:
> RW> ..*..... IFF !%1 == ! THEN^CD %0^ELSE^CD %0\%1^ENDIFF
> ^^
> I guess the equal sign goes here. Could you volunteer what
> this does. The %0 and ! threw me off.
Well, yes, if you alias it from the command line. I mark & transfered it
from my ALIAS.LST file.
The %0 is the command. %1 is the first parameter. The ! is to keep it from
complaining if no parameters are used on the command line.
If your dir structure looks like this:
C:\DOS
C:\DOS\ONE
C:\DOS\TWO
C:\TP
C:\TP\INC
and you are in C:\DOS\ONE, you could do the following:
Entering: .. Sends you: C:\DOS
... C:\
.. TWO C:\DOS\TWO
... TP C:\TP
... TP\INC C:\TP\INC
This is pretty basic, but when working many levels deep, this comes in VERY
handy for me.
Ron
---
* Origin: GENESIS * Portland, OR USA * (503)257-2462 *
(1:105/18@fidonet.org)
------------------------------------------------------------------------
Echo Flag : Permanent: N Export: N Personal Read: N
BBS: ESCMAIL Conference: 4dos Imported: 8/01/1992
To: GAYLE REHL Num: 553 Date: 7/28/1992
From: DAVE MUNHOLLON Re: Time: 11:14 pm
Subj: alias help Prvt: N Read: N
Hello Gayle!
Sunday July 26 1992, Gayle Rehl writes to All:
GR> alias that would do the following: 1. Check to confirm that the floppy
in
GR> drive a: is the same directory that I am in on the hard drive C:
GR> (Is C:\(directory)=A:\(directory)?) 2. If it is the proper
A:\(directory),
GR> delete all files on A: that are not still in C:\(directory).
I couldn't figure out how to do this with an alias (maybe someone else can),
but with a batchfile I could (Maybe it could be done simpler???). First you
need to have a directory on A: that is the same as the one on C:, but don't
use it, its just for identifying the disk. Then try this Batch:
:start
cls
iff isdir a:%_cwp then
set x=0
dir /b /a-d-s-h a:>temp.hld
:test
if %@line[temp.hld,%x]=**EOF** goto done
if not exist %@line[temp.hld,%x] del a:\%@line[temp.hld,%x]
set x=%@eval[%x+1]
goto test
:done
del temp.hld
else
echo The disk in Drive A is not the right one for this directory
echo Replace the disk in Drive A: and press 'C' to Continue or
inkey /K"cq" press 'Q' to quit [C/Q] %%k
if %k=c goto start
endiff
-=*Dave
--- GoldED 2.40
* Origin: Jackpot!! Colorado Springs, CO (719) 570-6118 (1:128/86)
------------------------------------------------------------------------
Echo Flag : Permanent: N Export: N Personal Read: N
BBS: ESCMAIL Conference: 4dos Imported: 8/01/1992
To: GAYLE REHL Num: 584 Date: 7/29/1992
From: FURLAN PRIMUS Re: Time: 10:07 pm
Subj: alias help Prvt: N Read: N
Regarding the original message from Gayle Rehl of 1:106/3333
writing to All on <Jul 26 15:30> while asserting:
GR> I back up many directories to floppies and then use the same
GR> floppy to back up any new additions to each directory. Sometimes,
GR> files are deleted from the hard drive directory and I have to
GR> manually compare the directories and delete the same files from
GR> the floppy. I would like an alias that would do the
GR> following:1. Check to confirm that the floppy in drive a: is
GR> the same directory that I am in on the hard drive C: (Is
GR> C:\(directory)=A:\(directory)?) 2. If it is the proper
GR> A:\(directory), delete all files on A: that are not still in
GR> C:\(directory).
does this do what you want?
_ _ _ O_/_ _C_U_T_ _H_E_R_E_ _ _ _ _ _ _
O \
c:
set c_cwp=%_cwp
a:
cd %c_cwp
for %f in (*.*) do if not exist c:%c_cwp%\%f del %f
_ _ _ O_/_ _C_U_T_ _H_E_R_E_ _ _ _ _ _ _
O \
test it on an unused area (on both drives) first before using it on 'live
data' <g>
fl
--- msgedsq 2.1a
* Origin: COLIC: A sheep dog. (1:141/590)
------------------------------------------------------------------------
Echo Flag : Permanent: N Export: N Personal Read: N
BBS: ESCMAIL Conference: 4dos Imported: 8/01/1992
To: TOM HALL Num: 504 Date: 7/23/1992
From: DOMINIC STRANGE Re: Time: 9:23 pm
Subj: Aliases Prvt: N Read: N
Hi Tom,
TH>It seems to work great here for file names, but not extensions. when I
TH>do FF CTL, I get no files listed, yet another file finder reports a
TH>number of them.
When you wnat to find files by extention you need to use the syntax
FF * ext
_____
%1 %2
note the * for %1 and a space between it and the extention.
you could also limit this to
FF fred t
this would find
fred.ctl
bfrede.tlc
fredblog.brt
etc
Like the idea of number of files display - working on it <g>
Hope it helps
Cheers
Dominic
* SLMR 2.1a * Command.Com A philips screwdriver to undo an allen screw!
--- Maximus 2.01wb
* Origin: Golly! = A 4DOS BBS = [+44-734-320812] (2:252/21)